Jacek Caban : widl: Generate names for imported nameless typedefs.

Alexandre Julliard julliard at winehq.org
Thu Aug 29 13:18:15 CDT 2013


Module: wine
Branch: master
Commit: 7e4462e28e9f66b61891683b77180d04148b06f4
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=7e4462e28e9f66b61891683b77180d04148b06f4

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Aug 29 15:09:21 2013 +0200

widl: Generate names for imported nameless typedefs.

---

 tools/widl/parser.y |    4 ++--
 tools/widl/widl.c   |    5 +++--
 tools/widl/widl.h   |    1 +
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/tools/widl/parser.y b/tools/widl/parser.y
index 5751598..97c3896 100644
--- a/tools/widl/parser.y
+++ b/tools/widl/parser.y
@@ -1840,7 +1840,7 @@ static type_t *reg_typedefs(decl_spec_t *decl_spec, declarator_list_t *decls, at
        type_get_type_detect_alias(type) == TYPE_STRUCT ||
        type_get_type_detect_alias(type) == TYPE_UNION ||
        type_get_type_detect_alias(type) == TYPE_ENCAPSULATED_UNION) &&
-      !type->name && !parse_only)
+      !type->name)
   {
     if (! is_attr(attrs, ATTR_PUBLIC) && ! is_attr (attrs, ATTR_HIDDEN))
       attrs = append_attr( attrs, make_attr(ATTR_PUBLIC) );
@@ -1980,7 +1980,7 @@ static char *gen_name(void)
 
   if (! file_id)
   {
-    char *dst = dup_basename(input_name, ".idl");
+    char *dst = dup_basename(input_idl_name, ".idl");
     file_id = dst;
 
     for (; *dst; ++dst)
diff --git a/tools/widl/widl.c b/tools/widl/widl.c
index 2ff1977..b37a0f8 100644
--- a/tools/widl/widl.c
+++ b/tools/widl/widl.c
@@ -118,6 +118,7 @@ int do_rt_extension = 0;
 static enum stub_mode stub_mode = MODE_Os;
 
 char *input_name;
+char *input_idl_name;
 char *header_name;
 char *local_stubs_name;
 char *header_token;
@@ -488,7 +489,7 @@ void write_id_data(const statement_list_t *stmts)
   }
 
   fprintf(idfile, "/*** Autogenerated by WIDL %s ", PACKAGE_VERSION);
-  fprintf(idfile, "from %s - Do not edit ***/\n\n", input_name);
+  fprintf(idfile, "from %s - Do not edit ***/\n\n", input_idl_name);
   fprintf(idfile, "#include <rpc.h>\n");
   fprintf(idfile, "#include <rpcndr.h>\n\n");
   fprintf(idfile, "#include <initguid.h>\n\n");
@@ -706,7 +707,7 @@ int main(int argc,char *argv[])
       return 1;
     }
     else
-      input_name = xstrdup(argv[optind]);
+      input_idl_name = input_name = xstrdup(argv[optind]);
   }
   else {
     fprintf(stderr, "%s", usage);
diff --git a/tools/widl/widl.h b/tools/widl/widl.h
index 91054ad..9e09f76 100644
--- a/tools/widl/widl.h
+++ b/tools/widl/widl.h
@@ -52,6 +52,7 @@ extern int win64_packing;
 extern int do_rt_extension;
 
 extern char *input_name;
+extern char *input_idl_name;
 extern char *header_name;
 extern char *header_token;
 extern char *local_stubs_name;




More information about the wine-cvs mailing list