* ebrowse.c (putstr): Rename from PUTSTR and turn into a function.
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 26 Feb 2011 00:22:13 +0000 (16:22 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 26 Feb 2011 00:22:13 +0000 (16:22 -0800)
All callers changed.  This is cleaner, and avoids GCC warnings about
passing NULL to fputs.

lib-src/ChangeLog
lib-src/ebrowse.c

index 699eaf4..969a84c 100644 (file)
@@ -1,3 +1,9 @@
+2011-02-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * ebrowse.c (putstr): Rename from PUTSTR and turn into a function.
+       All callers changed.  This is cleaner, and avoids GCC warnings about
+       passing NULL to fputs.
+
 2011-02-25  Paul Eggert  <eggert@cs.ucla.edu>
 
        * emacsclient.c (main): Avoid dangling 'if'.
index f2894d5..bc537ec 100644 (file)
@@ -1108,22 +1108,23 @@ leave_namespace (void)
 /* Write string S to the output file FP in a Lisp-readable form.
    If S is null, write out `()'.  */
 
-#define PUTSTR(s, fp)                          \
-  do {                                         \
-    if (!s)                                    \
-      {                                                \
-        putc ('(', fp);                                \
-        putc (')', fp);                                \
-        putc (' ', fp);                                \
-      }                                                \
-    else                                       \
-      {                                                \
-        putc ('"', fp);                                \
-        fputs (s, fp);                         \
-        putc ('"', fp);                                \
-        putc (' ', fp);                                \
-      }                                                \
-   } while (0)
+static inline void
+putstr (const char *s, FILE *fp)
+{
+  if (!s)
+    {
+      putc ('(', fp);
+      putc (')', fp);
+      putc (' ', fp);
+    }
+  else
+    {
+      putc ('"', fp);
+      fputs (s, fp);
+      putc ('"', fp);
+      putc (' ', fp);
+    }
+}
 
 /* A dynamically allocated buffer for constructing a scope name.  */
 
@@ -1216,16 +1217,16 @@ dump_members (FILE *fp, struct member *m)
   for (n = 0; m; m = m->next, ++n)
     {
       fputs (MEMBER_STRUCT, fp);
-      PUTSTR (m->name, fp);
-      PUTSTR (NULL, fp);               /* FIXME? scope for globals */
+      putstr (m->name, fp);
+      putstr (NULL, fp);               /* FIXME? scope for globals */
       fprintf (fp, "%u ", (unsigned) m->flags);
-      PUTSTR (m->filename, fp);
-      PUTSTR (m->regexp, fp);
+      putstr (m->filename, fp);
+      putstr (m->regexp, fp);
       fprintf (fp, "%u ", (unsigned) m->pos);
       fprintf (fp, "%u ", (unsigned) m->vis);
       putc (' ', fp);
-      PUTSTR (m->def_filename, fp);
-      PUTSTR (m->def_regexp, fp);
+      putstr (m->def_filename, fp);
+      putstr (m->def_regexp, fp);
       fprintf (fp, "%u", (unsigned) m->def_pos);
       putc (']', fp);
       putc ('\n', fp);
@@ -1243,20 +1244,20 @@ static void
 dump_sym (FILE *fp, struct sym *root)
 {
   fputs (CLASS_STRUCT, fp);
-  PUTSTR (root->name, fp);
+  putstr (root->name, fp);
 
   /* Print scope, if any.  */
   if (root->namesp)
-    PUTSTR (sym_scope (root), fp);
+    putstr (sym_scope (root), fp);
   else
-    PUTSTR (NULL, fp);
+    putstr (NULL, fp);
 
   /* Print flags.  */
   fprintf (fp, "%u", root->flags);
-  PUTSTR (root->filename, fp);
-  PUTSTR (root->regexp, fp);
+  putstr (root->filename, fp);
+  putstr (root->regexp, fp);
   fprintf (fp, "%u", (unsigned) root->pos);
-  PUTSTR (root->sfilename, fp);
+  putstr (root->sfilename, fp);
   putc (']', fp);
   putc ('\n', fp);
 }
@@ -1323,7 +1324,7 @@ dump_roots (FILE *fp)
   if (!f_append)
     {
       fputs (TREE_HEADER_STRUCT, fp);
-      PUTSTR (EBROWSE_FILE_VERSION, fp);
+      putstr (EBROWSE_FILE_VERSION, fp);
 
       putc ('\"', fp);
       if (!f_structs)