Commit Graph

1721 Commits

Author SHA1 Message Date
Eric Kohl
29ddbaa8c9 Revert 37416 because it does not build on all machines.
svn path=/trunk/; revision=37446
2008-11-18 18:51:13 +00:00
Eric Kohl
1bd1e3126a Sync to wine-1.1.1:
- Alexandre Julliard <julliard@winehq.org> Thu, 26 Jun 2008
widl: [default] is an allowed attribute for union fields.
(Note: This patch was already applied before in order not to break ReactOS.)

- Alexandre Julliard <julliard@winehq.org> Tue, 1 Jul 2008
widl: Add some support for unencapsulated unions that need a conformance descriptor.

- Rob Shearman <robertshearman@gmail.com> Tue, 1 Jul 2008
widl: Increment the buffer offset by 8 for embedded pointers inside varying arrays in varying structures.

The 8 bytes are for the variance and offset and are added just before the array, as seen in the marshalling code in rpcrt4. No offset needs to be added for non-varying structures since the buffer mark is set after the conformance in marshalled or unmarshalled.

- Rob Shearman <robertshearman@gmail.com> Tue, 1 Jul 2008
widl: Check that the structure has been defined in check_remoting_args.

- Dan Hipschman <dsh@linux.ucla.edu> Tue, 1 Jul 2008
widl: Implement type redefinition checks.

This allows widl to catch type redefinitions and report an error, like MIDL. However, this does a better job than MIDL since it also reports the location of the originial definition, like GCC.

- Dan Hipschman <dsh@linux.ucla.edu> Tue, 1 Jul 2008
widl: Factor a small part of the grammar.

- Rob Shearman <robertshearman@gmail.com> Thu, 3 Jul 2008
widl: Consolidate top-level parameter conformance/variance expression writing into a separate function.

Descend through as many pointer types as necessary to find the fundamental type and determine whether it needs a top-level parameter conformance/variance expression to be written. Add support for writing top-level parameter conformance/variance expressions for non-encapsulated unions.

- Rob Shearman <robertshearman@gmail.com> Fri, 4 Jul 2008
widl: Rename find_type_helper, find_type and find_type2 to find_type, find_type_error and find_type_error2 respectively.

- Rob Shearman <robertshearman@gmail.com> Fri, 4 Jul 2008
widl: Remove some unnecessary calls to duptype.

- Alexandre Julliard <julliard@winehq.org> Mon, 7 Jul 2008
widl: Fix a couple of uninitialized variable compiler warnings.

- Alexandre Julliard <julliard@winehq.org> Mon, 7 Jul 2008
Add noinput directive to all lex files to avoid a compiler warning.

Note: Two patches are missing because they implement code to generate MIDL-incompatible SEH support code. Unfortunately I think it is almost time to fork WIDL because later patches implement even more incompatibilities. :-(

svn path=/trunk/; revision=37416
2008-11-17 19:07:03 +00:00
Aleksey Bragin
bc5c507d54 Daniel Zimmerman
- Fix random widl crashes when compiling on Vista x86.

Patch from Wine bugzilla: http://bugs.winehq.org/show_bug.cgi?id=16084 .

See issue #3877 for more details.

svn path=/trunk/; revision=37390
2008-11-16 16:24:23 +00:00
Eric Kohl
e2eef76cbf Sync to wine-1.1.0:
- Simon Richter <Simon.Richter@hogyros.de> Tue, 17 Jun 2008
widl: Write string lengths in host endianness.
Type libraries are currently parsed in host endianness, so byte arrays that are going to be interpreted as integers need to be written in the appropriate byte order.

- Rob Shearman <robertshearman@gmail.com> Fri, 20 Jun 2008
widl: Fix generation of the type format string for conformant-varying structures.
The conformance needs to be added on to the offset in the buffer so set this before calling each the writer of each class of pointer description in write_pointer_description. Pass the passed in offsets to buffer and memory to write_pointer_description_offsets in write_varying_array_pointer_descriptions.

- Rob Shearman <robertshearman@gmail.com> Mon, 23 Jun 2008
widl: Replace code to round up values and calculate padding with macros to improve readability.

- Rob Shearman <robertshearman@gmail.com> Mon, 23 Jun 2008
widl: Fix the embedded pointer offsets in generated code when the containing structure has padding.
Do so by calculating the alignment of members when iterating through the structures and adding it onto the buffer and memory offsets. Only call type_memsize once elsewhere in the embedded pointer processing functions since the return value will be the same from the second call.

- Rob Shearman <robertshearman@gmail.com> Mon, 23 Jun 2008
widl: Factor out the finding of a registered type to reduce code duplication.

- Rob Shearman <robertshearman@gmail.com> Mon, 23 Jun 2008
widl: Set the type of the type_t node constructured for dispinterfaces to RPC_FC_IP, like we do for interfaces.

- Rob Shearman <robertshearman@gmail.com> Mon, 23 Jun 2008
widl: Fix crash in find_array_or_string_in_struct if the structure or union has no fields or cases.
(Aleksey already applied this patch in rev37378)

- Rob Shearman <robertshearman@gmail.com> Mon, 23 Jun 2008
widl: Fix the types of enums with the v1_enum attribute applied.

- Rob Shearman <robertshearman@gmail.com> Mon, 23 Jun 2008
widl: Fix type_memsize to follow aliases so that the correct size is calculated.

- Rob Shearman <robertshearman@gmail.com> Mon, 23 Jun 2008
widl: Fix check_remoting_fields to enumerate the correct list of fields.

svn path=/trunk/; revision=37381
2008-11-15 21:17:09 +00:00
Eric Kohl
c43e05155c Sync to wine-1.0-rc11:
- Francois Gouget <fgouget@free.fr> Tue, 6 May 2008
Add a comment warning when a table must be kept sorted for later use with bsearch().

- Francois Gouget <fgouget@free.fr> Tue, 6 May 2008
Assorted spelling fixes.

- Marcus Meissner <marcus@jet.franken.de> Tue, 6 May 2008
widl: Mark non-returning functions as noreturn.

svn path=/trunk/; revision=37380
2008-11-15 20:18:16 +00:00
Aleksey Bragin
a1ba38503c Rob Shearman <robertshearman@gmail.com> Mon, 23 Jun 2008 21:28:56 +0000 (22:28 +0100)
widl: Fix crash in find_array_or_string_in_struct if the structure or union has no fields or cases.

http://source.winehq.org/git/wine.git/?a=commit;h=b3dde47ed760880e323222af9ec7ad30702dec7c

svn path=/trunk/; revision=37378
2008-11-15 18:37:15 +00:00
Eric Kohl
b2736a8abb Sync to wine-0.9.61: Oooops, forgot to add these files!!
- Rob Shearman <rob@codeweavers.com> Sun, 20 Apr 2008
widl: Stop looping in check_remoting_args when a context_handle or wire_marshal type is found as they are in effect fundamental types.

- Rob Shearman <rob@codeweavers.com> Sun, 20 Apr 2008
widl: Check that fields in structures and unions referenced by non-local functions can be marshalled and that their attributes are consistent.


-Rob Shearman <rob@codeweavers.com> Sun, 20 Apr 2008
widl: The implicit_handle attribute is allowed with a handle explicitly specified in the function parameters. In that case, that handle is used instead of the implicit handle. Fix the check for the explicit_handle attribute being specified without a handle being specified in the function parameters, even though issuing an error is wrong. (Thanks to Marcus Meissner & Coverity for spotting that the check didn't do what it was supposed to do.)

- Rob Shearman <rob@codeweavers.com> Sun, 20 Apr 2008
widl: Automatically add "handle_t IDL_handle" parameter to functions with no explicit handle specified whose containing interface has the explicit_handle attribute.

- Rob Shearman <rob@codeweavers.com> Sun, 20 Apr 2008
widl: Issue an error instead of crashing for dividing by zero in a constant expression.

- Rob Shearman <rob@codeweavers.com> Sun, 20 Apr 2008
widl: Add support for "->" and "." operators in expressions.

- Rob Shearman <rob@codeweavers.com> Sun, 20 Apr 2008
widl: Add support for arrays in expressions.

- Rob Shearman <rob@codeweavers.com> Sun, 20 Apr 2008
widl: Add support for '%' operator in expressions.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Fix operator precedence in expressions.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Require a constant expression for case statements.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Add support for comparison, exclusive or, logical not and positive operators in expressions.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Remove EXPR_MEMBERPTR and implement it using EXPR_PPTR and EXPR_MEMBER instead.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Don't free input_name in pop_import as we keep pointers to it in the var_t type now.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Pass the actual type into check_remoting_fields and check_field_common instead of the type name.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Check that expressions resolve so that expressions in generated code will compile. Also check that expressions return the correct type for the attribute.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Move expression functions to a new file, expr.c.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Use expr_resolve_type to get the type of the identifier in write_conf_or_var_desc. Remove the conversion of pointer types into base types as this was only needed due to lack of proper type resolving.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Remove duplicated code in the form of the write_struct_expr function by enhancing write_expr to allow toplevel identifiers to be prefixed by a string, if specified.

- Rob Shearman <rob@codeweavers.com> Thu, 24 Apr 2008
widl: Implement lcid property on library declarations.

- Rob Shearman <rob@codeweavers.com> Thu, 24 Apr 2008
widl: Construct the pointer chain while parsing pointers, rather than storing a ptr_level. This method is more flexible and somewhat simpler.

- Rob Shearman <rob@codeweavers.com> Thu, 24 Apr 2008
widl: Allow NULL to be used in expressions.

- Rob Shearman <rob@codeweavers.com> Thu, 24 Apr 2008
widl: Create a list of statements in the whole IDL file, instead of just a list of interfaces.

- Rob Shearman <rob@codeweavers.com> Thu, 24 Apr 2008
widl: Add typedef statements to the statement lists.

- Rob Shearman <rob@codeweavers.com> Fri, 25 Apr 2008
widl: Consolidate most of the inner loop of reg_typedefs into set_type.

- Rob Shearman <rob@codeweavers.com> Fri, 25 Apr 2008
widl: Rename pident to declarator and parse the array declarations as part of declarators. This allows arrays to be used in typedefs and const statements.

- Rob Shearman <rob@codeweavers.com> Fri, 25 Apr 2008
widl: Make the rules for parsing fields in structures, encapsulated unions and non-encapsulated unions more strict. Move the rules in fields that handle empty union cases into separate union rules so that they can't erroneously be accepted for structures or other types of unions.

- Rob Shearman <rob@codeweavers.com> Fri, 25 Apr 2008
widl: Add support for declaring multiple fields of a structure in one statement.

- Rob Shearman <rob@codeweavers.com> Fri, 25 Apr 2008
widl: Add support for string literals and wide-string literals in expressions.

- Rob Shearman <rob@codeweavers.com> Fri, 25 Apr 2008
widl: Create a statement object for import statements. Move the writing of include directives into the generated header into header.c.

- Rob Shearman <rob@codeweavers.com> Fri, 25 Apr 2008
widl: Move the func_declarator rule entirely into direct_declarator.

- Rob Shearman <rob@codeweavers.com> Sat, 26 Apr 2008
widl: Add typedefs to typelibs which have the public or uuid attributes, not any other attribute.

- Rob Shearman <rob@codeweavers.com> Sat, 26 Apr 2008
widl: Support hex digits that use an uppercase 0X prefix.

- Rob Shearman <rob@codeweavers.com> Sun, 27 Apr 2008
widl: Accept integer constant suffixes in the lexer.

- Rob Shearman <rob@codeweavers.com> Tue, 29 Apr 2008
widl: Keep const attributes applied to pointers when writing out the type. Use an attribute to store the const qualifier for the pointer and type. Allow multiple type-qualifiers to be applied to a type by adding a declaration-specifier rule that encompasses type-qualifiers and types.

- Rob Shearman <rob@codeweavers.com> Tue, 29 Apr 2008
widl: Add support for "inline" on function definitions. Fix applying calling convention to function type.

- Rob Shearman <rob@codeweavers.com> Tue, 29 Apr 2008
widl: Make constdef and externdef take a declarator instead of an ident so that functions and arrays can be defined using the statements.

- Rob Shearman <rob@codeweavers.com> Tue, 29 Apr 2008
widl: Allow pointer attributes to be applied to function pointers.

- Rob Shearman <rob@codeweavers.com> Tue, 29 Apr 2008
widl: callback, code, comm_status and in_line are attribute names, not keywords.

- Rob Shearman <rob@codeweavers.com> Wed, 30 Apr 2008
widl: Prepare for supporting storage classes in declaration statements. Return a decl_spec_t structure from decl_spec rules so that the storage
class and type qualifiers can both be returned.

- Rob Shearman <rob@codeweavers.com> Wed, 30 Apr 2008
widl: Add the parsing of storage classes into declaration-specifiers. Support the static and register keywords. This consolidates externdef and constdef rules into one declaration rule.

- Rob Shearman <rob@codeweavers.com> Thu, 1 May 2008
widl: Consolidate writing of COM and dispatch interfaces into one function to remove duplicated code. Split up the writing into start and end to eventually support the style MIDL uses where it writes declared types, etc. between the start and end of the interface. Make internal header functions take the file pointer to print to. Don't write interface IDs for non-object interfaces and always write handle declarations even if the interface has no methods, like MIDL does.

- Gerald Pfeifer <gerald@pfeifer.com> Fri, 2 May 2008
widl: Fix syntax to also work with older versions of bison.

svn path=/trunk/; revision=37314
2008-11-12 19:30:10 +00:00
Eric Kohl
a591ac9fa5 Sync to wine-0.9.61:
- Rob Shearman <rob@codeweavers.com> Sun, 20 Apr 2008
widl: Stop looping in check_remoting_args when a context_handle or wire_marshal type is found as they are in effect fundamental types.

- Rob Shearman <rob@codeweavers.com> Sun, 20 Apr 2008
widl: Check that fields in structures and unions referenced by non-local functions can be marshalled and that their attributes are consistent.


-Rob Shearman <rob@codeweavers.com> Sun, 20 Apr 2008
widl: The implicit_handle attribute is allowed with a handle explicitly specified in the function parameters. In that case, that handle is used instead of the implicit handle. Fix the check for the explicit_handle attribute being specified without a handle being specified in the function parameters, even though issuing an error is wrong. (Thanks to Marcus Meissner & Coverity for spotting that the check didn't do what it was supposed to do.)

- Rob Shearman <rob@codeweavers.com> Sun, 20 Apr 2008
widl: Automatically add "handle_t IDL_handle" parameter to functions with no explicit handle specified whose containing interface has the explicit_handle attribute.

- Rob Shearman <rob@codeweavers.com> Sun, 20 Apr 2008
widl: Issue an error instead of crashing for dividing by zero in a constant expression.

- Rob Shearman <rob@codeweavers.com> Sun, 20 Apr 2008
widl: Add support for "->" and "." operators in expressions.

- Rob Shearman <rob@codeweavers.com> Sun, 20 Apr 2008
widl: Add support for arrays in expressions.

- Rob Shearman <rob@codeweavers.com> Sun, 20 Apr 2008
widl: Add support for '%' operator in expressions.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Fix operator precedence in expressions.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Require a constant expression for case statements.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Add support for comparison, exclusive or, logical not and positive operators in expressions.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Remove EXPR_MEMBERPTR and implement it using EXPR_PPTR and EXPR_MEMBER instead.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Don't free input_name in pop_import as we keep pointers to it in the var_t type now.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Pass the actual type into check_remoting_fields and check_field_common instead of the type name.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Check that expressions resolve so that expressions in generated code will compile. Also check that expressions return the correct type for the attribute.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Move expression functions to a new file, expr.c.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Use expr_resolve_type to get the type of the identifier in write_conf_or_var_desc. Remove the conversion of pointer types into base types as this was only needed due to lack of proper type resolving.

- Rob Shearman <rob@codeweavers.com> Tue, 22 Apr 2008
widl: Remove duplicated code in the form of the write_struct_expr function by enhancing write_expr to allow toplevel identifiers to be prefixed by a string, if specified.

- Rob Shearman <rob@codeweavers.com> Thu, 24 Apr 2008
widl: Implement lcid property on library declarations.

- Rob Shearman <rob@codeweavers.com> Thu, 24 Apr 2008
widl: Construct the pointer chain while parsing pointers, rather than storing a ptr_level. This method is more flexible and somewhat simpler.

- Rob Shearman <rob@codeweavers.com> Thu, 24 Apr 2008
widl: Allow NULL to be used in expressions.

- Rob Shearman <rob@codeweavers.com> Thu, 24 Apr 2008
widl: Create a list of statements in the whole IDL file, instead of just a list of interfaces.

- Rob Shearman <rob@codeweavers.com> Thu, 24 Apr 2008
widl: Add typedef statements to the statement lists.

- Rob Shearman <rob@codeweavers.com> Fri, 25 Apr 2008
widl: Consolidate most of the inner loop of reg_typedefs into set_type.

- Rob Shearman <rob@codeweavers.com> Fri, 25 Apr 2008
widl: Rename pident to declarator and parse the array declarations as part of declarators. This allows arrays to be used in typedefs and const statements.

- Rob Shearman <rob@codeweavers.com> Fri, 25 Apr 2008
widl: Make the rules for parsing fields in structures, encapsulated unions and non-encapsulated unions more strict. Move the rules in fields that handle empty union cases into separate union rules so that they can't erroneously be accepted for structures or other types of unions.

- Rob Shearman <rob@codeweavers.com> Fri, 25 Apr 2008
widl: Add support for declaring multiple fields of a structure in one statement.

- Rob Shearman <rob@codeweavers.com> Fri, 25 Apr 2008
widl: Add support for string literals and wide-string literals in expressions.

- Rob Shearman <rob@codeweavers.com> Fri, 25 Apr 2008
widl: Create a statement object for import statements. Move the writing of include directives into the generated header into header.c.

- Rob Shearman <rob@codeweavers.com> Fri, 25 Apr 2008
widl: Move the func_declarator rule entirely into direct_declarator.

- Rob Shearman <rob@codeweavers.com> Sat, 26 Apr 2008
widl: Add typedefs to typelibs which have the public or uuid attributes, not any other attribute.

- Rob Shearman <rob@codeweavers.com> Sat, 26 Apr 2008
widl: Support hex digits that use an uppercase 0X prefix.

- Rob Shearman <rob@codeweavers.com> Sun, 27 Apr 2008
widl: Accept integer constant suffixes in the lexer.

- Rob Shearman <rob@codeweavers.com> Tue, 29 Apr 2008
widl: Keep const attributes applied to pointers when writing out the type. Use an attribute to store the const qualifier for the pointer and type. Allow multiple type-qualifiers to be applied to a type by adding a declaration-specifier rule that encompasses type-qualifiers and types.

- Rob Shearman <rob@codeweavers.com> Tue, 29 Apr 2008
widl: Add support for "inline" on function definitions. Fix applying calling convention to function type.

- Rob Shearman <rob@codeweavers.com> Tue, 29 Apr 2008
widl: Make constdef and externdef take a declarator instead of an ident so that functions and arrays can be defined using the statements.

- Rob Shearman <rob@codeweavers.com> Tue, 29 Apr 2008
widl: Allow pointer attributes to be applied to function pointers.

- Rob Shearman <rob@codeweavers.com> Tue, 29 Apr 2008
widl: callback, code, comm_status and in_line are attribute names, not keywords.

- Rob Shearman <rob@codeweavers.com> Wed, 30 Apr 2008
widl: Prepare for supporting storage classes in declaration statements. Return a decl_spec_t structure from decl_spec rules so that the storage
class and type qualifiers can both be returned.

- Rob Shearman <rob@codeweavers.com> Wed, 30 Apr 2008
widl: Add the parsing of storage classes into declaration-specifiers. Support the static and register keywords. This consolidates externdef and constdef rules into one declaration rule.

- Rob Shearman <rob@codeweavers.com> Thu, 1 May 2008
widl: Consolidate writing of COM and dispatch interfaces into one function to remove duplicated code. Split up the writing into start and end to eventually support the style MIDL uses where it writes declared types, etc. between the start and end of the interface. Make internal header functions take the file pointer to print to. Don't write interface IDs for non-object interfaces and always write handle declarations even if the interface has no methods, like MIDL does.

- Gerald Pfeifer <gerald@pfeifer.com> Fri, 2 May 2008
widl: Fix syntax to also work with older versions of bison.

svn path=/trunk/; revision=37313
2008-11-12 19:26:25 +00:00
KJK::Hyperion
8b822b8a26 Hopefully, the definitive spec files commit. Dedicated to Samuel Serapión, who reported issues with my previous commits.
modified   tools/rbuild/backend/mingw/modulehandler.cpp
   Specifying .spec/.pspec files twice (<importlibrary> and <file>) didn't really make sense (stubs are unusable without the .def and viceversa), so they can now be only specified in <importlibrary>. I'd rather drop <importlibrary> completely and specify .def/.spec/.pspec as <file>s, but it's too hard so it'll have to wait. At least we got rid of one invocation of the preprocessor for .pspec files
   Simplified and improved rules to generate spec and stub files from .pspec
   Did you know we set the wrong DLL name in autogenerated .def files? Always pass the right name to winebuild with --filename, just to be sure
   Fully support compiling .pspec/.spec files from the intermediate directory
   Import libraries don't actually depend on stub/thunk files

modified   tools/rbuild/backend/mingw/modulehandler.h
   Removed some dead code

modified   tools/rbuild/backend/mingw/rule.cpp
modified   tools/rbuild/module.cpp
modified   tools/rbuild/rbuild.h
   Allow <importlibrary dllname="..." ...> in all module types. Why? Why not?

modified   Makefile
   Added ECHO_CPP to echo invocations of the C preprocessor

Everything else: removed all <file> entries for .spec/.pspec files. It was just maintenance overhead

svn path=/trunk/; revision=37270
2008-11-10 02:31:24 +00:00
Gregor Schneider
8a50f7448d Fix BitBlt MERGEPAINT operation command.
svn path=/trunk/; revision=37268
2008-11-09 18:38:02 +00:00
Eric Kohl
1fc7265fa2 Sync to wine-0.9.60:
- Rob Shearman <rob@codeweavers.com> Fri, 11 Apr 2008
widl: Support non-default calling conventions for object methods.

- Rob Shearman <rob@codeweavers.com> Fri, 11 Apr 2008
widl: Support non-default calling conventions for non-object functions.

- Rob Shearman <rob@codeweavers.com> Mon, 14 Apr 2008
widl: Check that attributes applied to interfaces, functions and arguments are applicable and issue an error if not.

- Rob Shearman <rob@codeweavers.com> Mon, 14 Apr 2008
widl: Check that attributes applied to typedefs and fields are applicable and issue an error otherwise.

- Rob Shearman <rob@codeweavers.com> Mon, 14 Apr 2008
widl: Make the attrs parameter passed to start_typelib const.

- Rob Shearman <rob@codeweavers.com> Mon, 14 Apr 2008
widl: The odl attribute is valid for dispinterfaces.

- Rob Shearman <rob@codeweavers.com> Mon, 14 Apr 2008
widl: Check that attributes are applicable for libraries,  modules, dispinterfaces and coclasses and otherwise issue an error.

- Rob Shearman <rob@codeweavers.com> Mon, 14 Apr 2008
widl: Output a warning if duplicate attributes are specified.

- Rob Shearman <rob@codeweavers.com> Mon, 14 Apr 2008
widl: Add support for the broadcast and idempotent operation attributes.

- Rob Shearman <rob@codeweavers.com> Mon, 14 Apr 2008
widl: Write out TYPEFLAG, FUNCFLAG and VARFLAG flags for all attribute we currently parse.
Add FIXMEs for the remaining ones and remove the warning for unimplemented attribute types since we now support all the attributes that we parse.

- Rob Shearman <rob@codeweavers.com> Mon, 14 Apr 2008
widl: Add functions to print an error or warning message using location information to enable these to be printed accurately when a check is done after an element is parsed.
Add location information to variable automatically, since this is will be useful for type checking of arguments.

- Rob Shearman <rob@codeweavers.com> Mon, 14 Apr 2008
widl: Add checking to arguments of non-local functions.
Check that out arguments have enough levels of indirection and that they don't derive from void * or a function pointer.

- Rob Shearman <rob@codeweavers.com> Tue, 15 Apr 2008
widl: Change alls calls to error in the parser to error_loc so that line number information is printed.

svn path=/trunk/; revision=37260
2008-11-09 14:21:53 +00:00
Gregor Schneider
5387d5fcac - Don't hard code pixel size to 16bpp.
- Fixes crashes in 8bpp and halved bitmaps in 32bpp.
- This SRCCOPY code is not in use atm and will probably stay this way because it's slower then the version in win32k/dib.

svn path=/trunk/; revision=37259
2008-11-09 14:00:31 +00:00
Stefan Ginsberg
7e33ef3d9e - Remove unnecessary typedef
svn path=/trunk/; revision=37214
2008-11-05 19:06:02 +00:00
Aleksey Bragin
04b0bb8994 - Sync WRC to Wine-20081105 (a few nice bugfixes).
svn path=/trunk/; revision=37211
2008-11-05 16:16:19 +00:00
Daniel Reimer
559030c1fd Accidently commited a hack together with r37190. This will be reverted.
svn path=/trunk/; revision=37208
2008-11-05 15:32:27 +00:00
Aleksey Bragin
8a89143b07 - Update wmc to Wine-20081105 (mostly typo fixes).
svn path=/trunk/; revision=37207
2008-11-05 15:31:34 +00:00
Aleksey Bragin
4bdaa4f74c - Fix build.
svn path=/trunk/; revision=37206
2008-11-05 15:25:19 +00:00
Aleksey Bragin
bef44e136e - Update winebuild to Wine-20081105. All ReactOS-specific stuff kept intact.
svn path=/trunk/; revision=37205
2008-11-05 15:14:58 +00:00
Aleksey Bragin
c3be025536 - Update wpp to Wine-20081105.
svn path=/trunk/; revision=37204
2008-11-05 14:47:55 +00:00
Aleksey Bragin
ca08af6ba3 - Update unicode lib to Wine-20081105 (~1.1.7 release).
svn path=/trunk/; revision=37203
2008-11-05 14:35:45 +00:00
Daniel Reimer
0bd254167c Bug 3830: Spanish netshell update and more by Javier Remacha
Bug 3833: Ukrainian translation update by Artem Reznikov
Bug 3834: another fix for slovak translationby Mario Kacmar

svn path=/trunk/; revision=37190
2008-11-04 21:28:06 +00:00
KJK::Hyperion
00ed4c1394 KJK::Hyperion is proud to present "dllimport purity", another landmark commit that you should really build only after a "clean"
Disclaimer: in an uncharacteristic and daring move, I actually built, installed and booted this revision

modified   tools/rbuild/backend/mingw/mingw.cpp
modified   tools/rbuild/backend/mingw/modulehandler.cpp
modified   tools/rbuild/module.cpp
modified   tools/rbuild/project.dtd
modified   tools/rbuild/rbuild.h
modified   include/crt/_mingw.h
   New module attribute iscrt for marking modules that implement a C runtime library
   New module attribute crt for compiling and linking modules to a specific C runtime library. Can be "ntdll" (for ntdll.dll) "msvcrt" (msvcrt.dll), "crt" (statically-linked runtime), "libcntpr" (libcntpr.lib), "dll" (one of the <library> entries specifies a CRT DLL) or "static". Defaults to "msvcrt" for Win32 modules, to "static" for CRT modules themselves, and to "dll" for drivers
   Define _DLL for code that compiles against a dynamically-linked CRT
   Define __MINGW_IMPORT and _CRTIMP according to whether _DLL is defined. We finally use __declspec(dllimport) somewhere, anywhere (SDK headers still don't use it)
   Bonus fix: actually use compiler-specific command line flags when compiling files

modified   lib/3rdparty/adns/adns.rbuild
modified   lib/3rdparty/libxml2/libxml2.rbuild
modified   lib/3rdparty/mingw/mingw.rbuild
   And for the downside: static libraries that will be linked to a module that links to the CRT dynamically have to be compiled for a dynamically-linked CRT, as well. Say it out aloud.

modified   base/applications/wordpad/wordpad.rbuild
modified   base/setup/usetup/usetup.rbuild
modified   dll/3rdparty/dxtn/dxtn.rbuild
modified   dll/3rdparty/freetype/freetype.rbuild
modified   dll/3rdparty/mesa32/mesa32.rbuild
modified   dll/cpl/desk/desk.rbuild
modified   dll/cpl/input/input.rbuild
modified   dll/cpl/intl/intl.rbuild
modified   dll/cpl/joy/joy.rbuild
modified   dll/cpl/main/main.rbuild
modified   dll/cpl/mmsys/mmsys.rbuild
modified   dll/cpl/odbccp32/odbccp32.rbuild
modified   dll/cpl/powercfg/powercfg.rbuild
modified   dll/cpl/sysdm/sysdm.rbuild
modified   dll/cpl/telephon/telephon.rbuild
modified   dll/cpl/timedate/timedate.rbuild
modified   dll/cpl/usrmgr/usrmgr.rbuild
modified   dll/directx/ddraw/ddraw.rbuild
modified   dll/directx/dsound/dsound.rbuild
modified   dll/directx/wine/wined3d/wined3d.rbuild
modified   dll/nls/idndl_redist/idndl_redist.rbuild
modified   dll/nls/normaliz_redist/normaliz_redist.rbuild
modified   dll/shellext/deskadp/deskadp.rbuild
modified   dll/shellext/deskmon/deskmon.rbuild
modified   dll/shellext/fontext/fontext.rbuild
modified   dll/win32/dhcpcsvc/dhcpcsvc.rbuild
modified   dll/win32/dnsapi/dnsapi.rbuild
modified   dll/win32/glu32/glu32.rbuild
modified   dll/win32/icmp/icmp.rbuild
modified   dll/win32/winmm/midimap/midimap.rbuild
modified   drivers/video/displays/framebuf/framebuf.rbuild
modified   drivers/video/displays/framebufacc/framebufacc.rbuild
modified   drivers/video/displays/vga/vgaddi.rbuild
modified   subsystems/win32/csrss/csrss.rbuild
modified   subsystems/win32/csrss/win32csr/win32csr.rbuild
modified   subsystems/win32/win32k/win32k.rbuild
   Don't specify msvcrt explicitely as a <library> if it's going to be linked implicitely as the CRT
   <library>libcntpr</library> -> crt="libcntpr"
   Remove miscellaneous unused <library> entries

modified   dll/win32/crtdll/crtdll.rbuild
modified   dll/win32/msvcrt20/msvcrt20.rbuild
modified   dll/win32/msvcrt40/msvcrt40.rbuild
modified   dll/win32/msvcrt/msvcrt.rbuild
   Mark CRT DLLs as CRT modules

modified   dll/win32/user32/windows/font.c
modified   include/reactos/wine/unicode.h
   Don't redefine or redeclare CRT functions

modified   dll/win32/ws2_32/include/ws2_32.h
   Arch, you idiot, it's defined in <stdlib.h>

modified   include/crt/ctype.h
modified   include/crt/wctype.h
   Don't import ctype routines that were already defined as inlines

modified   include/crt/stdio.h
modified   include/reactos/wine/config.h
   Avoid linking to libmingwex.a if possible

modified   base/applications/taskmgr/taskmgr.rbuild
modified   tools/nci/nci.mak
modified   tools/nci/ncitool.c
modified   dll/ntdll/ntdll.rbuild
   Mark ntdll module as a CRT
   New "ntsys" module to import just Nt/Zw from ntdll.dll. Avoids accidentally linking to ntdll.dll's CRT when importing system calls

modified   include/psdk/winternl.h
   Nope, it doesn't.

modified   base/applications/network/net/help.c
modified   base/applications/network/net/main.c
   Replace printf with puts, or GCC will do it on its own and link to the dllimport thunk for puts

modified   base/applications/network/ping/ping.c
   Removed broken, unnecessary workaround

modified   base/shell/cmd/cmd.rbuild
   Simplify cmd module

This commit dediHAPPY BIRTHDAY STEFAN GINSBERG <3 <3 <3

svn path=/trunk/; revision=37187
2008-11-04 18:16:58 +00:00
KJK::Hyperion
75f046ab4e Arch Blackmann's rules for preprocessed spec files were quite broken (of course). Fixing them.
* Add the module name to the name of the intermediate .spec file generated by the preprocessor. Fixes race condition in parallel builds of HAL targets
 * Pass module defines and includes to the preprocessor. Fixes a future bug that would have caused Aleksey to commit suicide and ReactOS to be forked into Debian GNU/ReactOS
 * Don't silently ignore stubs defined by .pspec files. What the hell, Arch?

Bonus improvement: cleaned up linker command, generating .exp files correctly as intermediate files with the appropriate dependencies. Happy Hallowmas!

svn path=/trunk/; revision=37145
2008-11-01 23:23:02 +00:00
Dmitry Chapyshev
d0418e7123 - Attempt to fix a bug 3255.
By means of Christoph_vW.
Not tested.

svn path=/trunk/; revision=37093
2008-10-30 11:14:40 +00:00
Colin Finck
291486f5d6 Don't decide whether to preprocess .spec files based on Kernel-Mode vs. User-Mode, but on the file extension.
.pspec files are preprocessed now, while .spec files aren't. A change like this was already done in the amd64 branch before KJK rewrote the .spec stuff in rbuild.

- Renamed currently preprocessed .spec files to .pspec and changed that in the .rbuild files appropriately
- Renamed "IsWineModule" to "IsSpecDefinitionFile",  the new name is more appropriate
- Removed some checks for uppercased file extensions, we neither use them in our tree nor it will totally work as we only support them in a few places

Commit dedicated to Timo ;-)

svn path=/trunk/; revision=37070
2008-10-29 16:42:03 +00:00
Eric Kohl
53177f48f4 Initialize _RetVal properly in order to avoid compiler warnings.
svn path=/trunk/; revision=37001
2008-10-26 21:03:11 +00:00
Colin Finck
4ad62aac38 - Add a "host" attribute to the project's <include> and <define> tags to make it possible to define global includes/defines for host components
- Define TARGET_arm/TARGET_i386 in the ReactOS-arm.rbuild/ReactOS-i386.rbuild files for the host tools to make it possible for them to know about the target to build
- Make use of this define in winebuild to fix the issue of r36927 properly
- Define global includes for host tools to simplify all host tool/library rbuild files
- Remove dead rbuild code

- Remove the include/reactos/config.h file, none of its defines are still used
- Fix components accidentally using that file

svn path=/trunk/; revision=36995
2008-10-26 18:03:06 +00:00
Eric Kohl
1e39b5fb16 WIDL: Enable the use of scalar types (non-pointer types) as custom binding handles.
svn path=/trunk/; revision=36982
2008-10-26 12:17:36 +00:00
Colin Finck
ce96d49c36 Fix build broken in r36927
The #ifdef's here are defined by the host, not by the target.
Therefore we can't check with #if defined(__x86_64__) whether we build for 64-bit. Probably a _TARGET_PE64 solution like we have for rsym is needed here to fix this properly also for the AMD64 port.

svn path=/trunk/; revision=36944
2008-10-25 14:49:51 +00:00
KJK::Hyperion
7661ad3e1c modified tools/rbuild/backend/mingw/modulehandler.cpp
Allow static libraries to "link" to other static libraries
   Removed some dead code

modified   dll/nls/normaliz_redist/normaliz_redist.rbuild
modified   dll/win32/kernel32/kernel32.rbuild
   No need to specify icu4ros explicitely anymore, thanks to the rbuild changes
   Make kernel32_base include normalize, rather than linking it as an external dependency of kernel32

svn path=/trunk/; revision=36929
2008-10-25 02:52:24 +00:00
Timo Kreuzer
f258a9cc26 merge 36224 and 36910 from amd64 branch
svn path=/trunk/; revision=36928
2008-10-24 22:13:45 +00:00
Timo Kreuzer
4ed5661801 merge 36223 from amd64-branch
svn path=/trunk/; revision=36927
2008-10-24 21:32:48 +00:00
KJK::Hyperion
9ac0fa4e4d modified tools/rbuild/backend/mingw/modulehandler.cpp
modified   tools/rbuild/backend/mingw/modulehandler.h
modified   tools/rbuild/module.cpp
   Split rules for .spec files as input files vs import libraries. .spec files can now be specified independently as <file>s (to generate and compile a .stubs.c file) and <importlibrary> (to generate and compile a .spec.def file)
   .spec files are now specified in <importlibrary>s directly (instead of pointing to the non-existing, generated .spec.def file. Whose idea was that? sounds like the doing of Arch Blackmann)
   Allow multiple modules to share a single .spec file without using <importlibrary base="...">
   Allow static libraries to use .spec files in <importlibrary>
   Emit comments in makefile.auto so rules can be traced back to the code that generated them

deleted    lib/debugsup/debugsup-ntos.def
added      lib/debugsup/debugsup-ntos.spec
modified   lib/debugsup/debugsup.rbuild
   .def -> .spec

<<hundreds of rbuild files>>
   Remove <file> entry for spec file if there are no stubs to compile
   .spec.def -> .spec in <importlibrary> entries

Soon: making all keyboard layouts use a single .spec file
Dedicated to: Samuel Serapión, Stefan Ginsberg, and all the fellow team members who'll have an aneurysm at this commit

See issue #3746 for more details.

svn path=/trunk/; revision=36870
2008-10-21 13:51:49 +00:00
Eric Kohl
0690324f95 Sync to wine-0.9.60:
- Rob Shearman <rob@codeweavers.com> Wed, 26 Mar 2008
widl: Support using context handles as the binding handle in client functions.

- Rob Shearman <rob@codeweavers.com> Thu, 27 Mar 2008
widl: Use is_string_type for detecting strings in write_typeformatstring_var to make it consistent with write_remoting_arg.

- Rob Shearman <rob@codeweavers.com> Thu, 27 Mar 2008
widl: Add support for generic binding handles.

- Rob Shearman <rob@codeweavers.com> Thu, 27 Mar 2008
widl: Fix detection of non-pointer context handles.

- Rob Shearman <rob@codeweavers.com> Thu, 27 Mar 2008
widl: Make sure that string types are always written out by write_string_tfs and not write_simple_pointer.

- Rob Shearman <rob@codeweavers.com> Mon, 31 Mar 2008
widl: Parse typedefs of function pointers.

- Rob Shearman <rob@codeweavers.com> Tue, 1 Apr 2008
widl: Be more strict about where semicolons can appear in IDL files.

- Rob Shearman <rob@codeweavers.com> Wed, 2 Apr 2008
widl: Add a function to get the return type of a parsed function.

- Rob Shearman <rob@codeweavers.com> Wed, 2 Apr 2008
widl: Store function and function pointer types completely within type_t type.

- Rob Shearman <rob@codeweavers.com> Wed, 2 Apr 2008
widl: Support parsing calling conventions for function identifiers.

- Rob Shearman <rob@codeweavers.com> Wed, 2 Apr 2008
widl: Support __fastcall and __pascal calling conventions.

- Rob Shearman <rob@codeweavers.com> Wed, 2 Apr 2008
widl: Add a newline between function prototypes for non-object interfaces.

- Rob Shearman <rob@codeweavers.com> Wed, 2 Apr 2008
widl: Fix the writing out of function pointers with more than one level of indirection.

- Rob Shearman <rob@codeweavers.com> Wed, 2 Apr 2008
widl: Turn on verbose errors, which gives a little more information in the case of a syntax error.

- Dan Hipschman <dsh@linux.ucla.edu> Thu, 3 Apr 2008
widl: Fix a mistake in an ordered list (keywords).


svn path=/trunk/; revision=36829
2008-10-19 12:30:41 +00:00
KJK::Hyperion
55c21fd29a modified rbuild/backend/codeblocks/codeblocks.cpp
modified   rbuild/backend/mingw/modulehandler.cpp
modified   rbuild/backend/msbuild/msbuild.cpp
modified   rbuild/backend/msvc/vcprojmaker.cpp
modified   rbuild/project.cpp
modified   rbuild/rbuild.h
   Index properties and modules by name.
   Should make for faster lookups and slightly faster overall execution, no idea exactly by how much but there you have it.

modified   rbuild/automaticdependency.cpp
modified   rbuild/backend/dependencymap/dependencymap.cpp
modified   rbuild/backend/devcpp/devcpp.cpp
modified   rbuild/backend/mingw/mingw.cpp
modified   rbuild/backend/mingw/proxymakefile.cpp
modified   rbuild/backend/msvc/msvc.cpp
modified   rbuild/backend/msvc/msvcmaker.cpp
modified   rbuild/backend/versionreport/versionreport.cpp
modified   rbuild/compilationunitsupportcode.cpp
modified   rbuild/module.cpp
modified   rbuild/pch.h
modified   rbuild/syssetupgenerator.cpp
modified   rbuild/testsupportcode.cpp
   Fix compilation, no functional changes

This dedication committed to Casper and Hervé

svn path=/trunk/; revision=36766
2008-10-16 13:40:39 +00:00
KJK::Hyperion
7b75f95f4b Give .gch files an unique path based on module name: allows multiple modules to (safely!) share a single precompiled header.
Enjoy rebuilding the whole tree <3

This commit dedicated to hpoussin
See issue #3263 for more details.

svn path=/trunk/; revision=36760
2008-10-15 13:46:23 +00:00
Hervé Poussineau
aac6354d3b Remove a hack, and link with C++ libraries only when required
Patch by Cecill Etheredge ( ijsf at gmx dot net )

svn path=/trunk/; revision=36576
2008-09-28 14:17:45 +00:00
Eric Kohl
4a8d830f83 Sync to Wine-0.9.58
- Rob Shearman <rob@codeweavers.com> Thu, 14 Feb 2008
widl: Remove unused headers.

- Rob Shearman <rob@codeweavers.com> Thu, 14 Feb 2008
widl: Guard the inclusion of unistd.h.

- Rob Shearman <rob@codeweavers.com> Tue, 19 Feb 2008
Add the nounistd option to all lex source files.

- Alexandre Julliard <julliard@winehq.org> Tue, 19 Feb 2008
Avoid the nounistd option that doesn't exist on older flex, define YY_NO_UNISTD_H... 

- Dan Hipschman <dsh@linux.ucla.edu> Thu, 21 Feb 2008
widl: Allow is_string_type to work for typedef'd types.

- Gerald Pfeifer <gerald@pfeifer.com> Fri, 22 Feb 2008
widl: Include <unistd.h> for prototype of unlink().

- Dan Hipschman <dsh@linux.ucla.edu> Wed, 19 Mar 2008
widl: Ignore libraries in imported IDL files.

- Dan Hipschman <dsh@linux.ucla.edu> Thu, 20 Mar 2008
widl: Make structures with FC_ENUM16 fields complex.

svn path=/trunk/; revision=36394
2008-09-21 21:18:42 +00:00
Eric Kohl
1c1bfdafe2 Define TRUE only if it hasn't been defined before
svn path=/trunk/; revision=36390
2008-09-21 19:57:05 +00:00
Colin Finck
0fa81bc0da Wow, WriteConfigurationFile() in rbuild never worked since it was added in r13496 over 3 years ago! :-)
Thus, the generated "roscfg.h" was always empty, but for whatever reason modules started to include it.
I removed all dependencies on this file and the function itself from rbuild.

svn path=/trunk/; revision=36373
2008-09-21 13:00:40 +00:00
Christoph von Wittich
4baaab5def Output NULL for inherited methods in the vtbl.
Dan Hipschman <dsh at linux.ucla.edu>

svn path=/trunk/; revision=36207
2008-09-14 05:07:16 +00:00
Christoph von Wittich
5c8abfd6a4 open TypeLibs with O_BINARY (patch already send to wine)
svn path=/trunk/; revision=36087
2008-09-09 16:13:36 +00:00
Hervé Poussineau
a0c4f776f2 Remove MingwKernelModeDriverModuleHandler, it is the same as MingwKernelModeDLLModuleHandler
svn path=/trunk/; revision=36078
2008-09-09 07:30:52 +00:00
Hervé Poussineau
93ec54f4e5 Remove GetExtraDependencies() function.
It was only called when the file extension was .c/.cc/.cpp/.cxx, and the function was returning empty string in those cases.

svn path=/trunk/; revision=36077
2008-09-09 07:21:37 +00:00
Hervé Poussineau
8bfedb5a6d Remove host attribute of module element. It wasn't used and can be deduced from module type
Remove MingwBootSectorModuleHandler class
Move module specific cflags, nasmflags and linkerflags to an array. One day, we won't be forced to create a new MingwModuleHandler each time we add a module type

svn path=/trunk/; revision=36076
2008-09-09 07:12:30 +00:00
Christoph von Wittich
b7a82e6a51 Use MS-style imports instead of Borland-style for builtins patch by Alexandre Julliard <julliard at winehq.org>
svn path=/trunk/; revision=36030
2008-09-07 13:50:09 +00:00
Christoph von Wittich
03ba3b67d1 delete sysreg, it is obsolete now
svn path=/trunk/; revision=35878
2008-09-02 12:57:26 +00:00
Hervé Poussineau
aeedb31a0f Add module linker flags after project flags, so project ones can be overridden
svn path=/trunk/; revision=35240
2008-08-09 16:01:20 +00:00
Hervé Poussineau
e8ac6d2a94 Better support for kill_at option in fastcall entry points
svn path=/trunk/; revision=35071
2008-08-03 16:12:02 +00:00
Aleksey Bragin
6fbda662d9 - Revert 35039 on hpoussin's request.
svn path=/trunk/; revision=35064
2008-08-03 11:14:34 +00:00