Dan Hipschman : widl: Print pointers more aesthetically in generated header .

Alexandre Julliard julliard at wine.codeweavers.com
Thu Sep 7 03:45:47 CDT 2006


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

Author: Dan Hipschman <dsh at linux.ucla.edu>
Date:   Tue Aug 29 14:28:05 2006 -0700

widl: Print pointers more aesthetically in generated header.

---

 tools/widl/header.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/tools/widl/header.c b/tools/widl/header.c
index 5de43c0..168f4c6 100644
--- a/tools/widl/header.c
+++ b/tools/widl/header.c
@@ -199,6 +199,11 @@ static void write_enums(FILE *h, var_t *
   fprintf(h, "\n");
 }
 
+int needs_space_after(type_t *t)
+{
+  return t->kind == TKIND_ALIAS || ! is_ptr(t);
+}
+
 void write_type(FILE *h, type_t *t, const var_t *v, const char *n)
 {
   int c;
@@ -259,7 +264,7 @@ void write_type(FILE *h, type_t *t, cons
       case RPC_FC_FP:
       case RPC_FC_OP:
         if (t->ref) write_type(h, t->ref, NULL, t->name);
-        fprintf(h, "*");
+        fprintf(h, "%s*", needs_space_after(t->ref) ? " " : "");
         break;
       default:
         fprintf(h, "%s", t->name);
@@ -338,7 +343,7 @@ void write_typedef(type_t *type)
 {
   fprintf(header, "typedef ");
   write_type(header, type->orig, NULL, NULL);
-  fprintf(header, " %s;\n", type->name);
+  fprintf(header, "%s%s;\n", needs_space_after(type->orig) ? " " : "", type->name);
 }
 
 void write_expr(FILE *h, const expr_t *e, int brackets)
@@ -585,7 +590,8 @@ void write_args(FILE *h, var_t *arg, con
     }
     else
     {
-      fprintf(h, " ");
+      if (needs_space_after(arg->type))
+        fprintf(h, " ");
       write_name(h, arg);
     }
     write_array(h, arg->array, 0);




More information about the wine-cvs mailing list