Files
reactos/reactos/tools/widl/widl_ros.diff
T
Hervé Poussineau a71a69c253 Support nested structures
svn path=/trunk/; revision=35039
2008-08-02 15:34:14 +00:00

146 lines
4.9 KiB
Diff

Index: hash.c
===================================================================
--- hash.c (revision 32187)
+++ hash.c (working copy)
@@ -21,9 +21,7 @@
#include <stdio.h>
#include <stdarg.h>
-#include "windef.h"
-#include "winbase.h"
-#include "winnls.h"
+#include <host/nls.h>
#include "hash.h"
@@ -535,6 +533,7 @@
case LANG_SWEDISH: case LANG_SYRIAC: case LANG_TAMIL:
case LANG_TATAR: case LANG_TELUGU: case LANG_THAI:
case LANG_UKRAINIAN: case LANG_URDU: case LANG_UZBEK:
+#ifndef __REACTOS__
case LANG_VIETNAMESE: case LANG_GAELIC: case LANG_MALTESE:
case LANG_TAJIK: case LANG_ROMANSH: case LANG_IRISH:
case LANG_SAMI: case LANG_UPPER_SORBIAN: case LANG_SUTU:
@@ -542,6 +541,12 @@
case LANG_XHOSA: case LANG_ZULU: case LANG_ESPERANTO:
case LANG_WALON: case LANG_CORNISH: case LANG_WELSH:
case LANG_BRETON:
+#else
+ case LANG_VIETNAMESE: case LANG_MALTESE: case LANG_IRISH:
+ case LANG_SAMI: case LANG_UPPER_SORBIAN: case LANG_TSWANA:
+ case LANG_XHOSA: case LANG_ZULU: case LANG_WELSH:
+ case LANG_BRETON:
+#endif
nOffset = 16;
pnLookup = Lookup_16;
break;
Index: server.c
===================================================================
--- server.c (revision 32187)
+++ server.c (working copy)
@@ -390,6 +390,7 @@
print_server("/*** Autogenerated by WIDL %s from %s - Do not edit ***/\n", PACKAGE_VERSION, input_name);
print_server("#include <string.h>\n");
fprintf(server, "\n");
+ print_server("#define _SEH_NO_NATIVE_NLG\n");
print_server("#include \"%s\"\n", header_name);
fprintf(server, "\n");
}
Index: typegen.c
===================================================================
--- typegen.c (revision 32187)
+++ typegen.c (working copy)
@@ -3299,8 +3299,9 @@
print_file(file, 0, "static void __RPC_USER %s_%sExprEval_%04u(PMIDL_STUB_MESSAGE pStubMsg)\n",
iface, name, callback_offset);
print_file(file, 0, "{\n");
- print_file (file, 1, "%s *%s = (%s *)(pStubMsg->StackTop - %u);\n",
- name, var_name, name, eval->baseoff);
+ print_file (file, 1, "%s%s *%s = (%s%s *)(pStubMsg->StackTop - %u);\n",
+ is_struct(eval->structure->type) ? "struct " : "", name, var_name,
+ is_struct(eval->structure->type) ? "struct " : "", name, eval->baseoff);
print_file(file, 1, "pStubMsg->Offset = 0;\n"); /* FIXME */
print_file(file, 1, "pStubMsg->MaxCount = (unsigned long)");
write_struct_expr(file, eval->expr, 1, fields, var_name);
Index: typelib.c
===================================================================
--- typelib.c (revision 32187)
+++ typelib.c (working copy)
@@ -35,8 +35,7 @@
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
-#include "windef.h"
-#include "winbase.h"
+#include <host/typedefs.h>
#include "widl.h"
#include "utils.h"
Index: widl.c
===================================================================
--- widl.c (revision 32187)
+++ widl.c (working copy)
@@ -174,7 +174,7 @@
token = xstrdup(name);
for (i=0; token[i]; i++) {
if (!isalnum(token[i])) token[i] = '_';
- else token[i] = toupper(token[i]);
+ else token[i] = tolower(token[i]);
}
return token;
}
@@ -561,8 +561,8 @@
fprintf(header, "/*** Autogenerated by WIDL %s from %s - Do not edit ***/\n", PACKAGE_VERSION, input_name);
fprintf(header, "#include <rpc.h>\n" );
fprintf(header, "#include <rpcndr.h>\n\n" );
- fprintf(header, "#ifndef __WIDL_%s\n", header_token);
- fprintf(header, "#define __WIDL_%s\n", header_token);
+ fprintf(header, "#ifndef __%s__\n", header_token);
+ fprintf(header, "#define __%s__\n", header_token);
start_cplusplus_guard(header);
}
@@ -606,7 +606,7 @@
fprintf(header, "/* End additional prototypes */\n");
fprintf(header, "\n");
end_cplusplus_guard(header);
- fprintf(header, "#endif /* __WIDL_%s */\n", header_token);
+ fprintf(header, "#endif /* __%s__ */\n", header_token);
fclose(header);
}
Index: widltypes.h
===================================================================
--- widltypes.h (revision 32187)
+++ widltypes.h (working copy)
@@ -21,6 +21,13 @@
#ifndef __WIDL_WIDLTYPES_H
#define __WIDL_WIDLTYPES_H
+#define S_OK 0
+#define S_FALSE 1
+#define E_OUTOFMEMORY ((HRESULT)0x8007000EL)
+#define TYPE_E_IOERROR ((HRESULT)0x80028CA2L)
+
+#define max(a, b) ((a) > (b) ? a : b)
+
#include <stdarg.h>
#include "guiddef.h"
#include "wine/rpcfc.h"
Index: write_msft.c
===================================================================
--- write_msft.c (revision 32187)
+++ write_msft.c (working copy)
@@ -40,10 +40,8 @@
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
-#include "winerror.h"
-#include "windef.h"
-#include "winbase.h"
-#include "winnls.h"
+#include <host/typedefs.h>
+#include <host/nls.h>
#include "widltypes.h"
#include "typelib.h"