m4-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch-1_4 allow C++ on Linux


From: Eric Blake
Subject: branch-1_4 allow C++ on Linux
Date: Wed, 1 Nov 2006 22:28:36 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

Bruno Haible pointed out that allowing a C++ compilation on Linux can catch 
type errors.  Most other platforms suck in too much of gnulib, including bits 
that won't work with C++, but this patch allows a Linux system to complete the 
testsuite with './configure CC=g++ --enable-changeword --without-included-
regex'.  It mainly involves adding casts to uses of obstacks, using <stdbool.h> 
instead of rolling our own boolean, and being careful when translating between 
char* and unsigned char*.  Fortunately, I didn't detect any real bugs in this 
exercise.

2006-11-01  Eric Blake  <address@hidden>

        Allow C++ compilation on Linux, as a safety measure in type
        checking.
        * m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
        stdbool'.
        * src/m4.h (hack_symbol, hack_all_symbols): Use full prototype.
        (boolean): Kill this, and use stdbool.h instead.
        * src/debug.c, src/eval.c, src/input.c, src/macro.c, src/m4.c:
        * src/output.c, src/symtab.c: All users changed.
        * src/symtab.c (hack_all_symbols): Update prototype.
        * src/builtin.c (dump_symbol, set_trace): Update signature.
        (m4_dumpdef, m4_traceon, m4_traceoff): Update callers.
        (mkstemp_helper, m4_m4wrap, expand_ranges, m4_translit): Allow
        C++ compilation.
        * src/debug.c (trace_flush): Likewise.
        * src/freeze.c (reload_frozen_state): Likewise.
        * src/input.c (push_file, push_string_finish, push_wrapup):
        (token_bottom, next_token): Likewise.
        * src/m4.c (main): Likewise.

Index: m4/gnulib-cache.m4
===================================================================
RCS file: /sources/m4/m4/m4/Attic/gnulib-cache.m4,v
retrieving revision 1.1.2.18
diff -u -r1.1.2.18 gnulib-cache.m4
--- m4/gnulib-cache.m4  31 Oct 2006 14:13:41 -0000      1.1.2.18
+++ m4/gnulib-cache.m4  1 Nov 2006 22:22:49 -0000
@@ -15,11 +15,11 @@
 
 
 # Specification in the form of a command-line invocation:
-#   gnulib-tool --import --dir=. --lib=libm4 --source-base=lib --m4-base=m4 --
doc-base=doc --aux-dir=. --no-libtool --macro-prefix=M4 binary-io clean-temp 
cloexec close-stream closeout config-h error fdl fopen-safer free gendocs 
getopt gnupload mkstemp obstack regex stdlib-safer strstr strtol unlocked-io 
verror xalloc xvasprintf
+#   gnulib-tool --import --dir=. --lib=libm4 --source-base=lib --m4-base=m4 --
doc-base=doc --aux-dir=. --no-libtool --macro-prefix=M4 binary-io clean-temp 
cloexec close-stream closeout config-h error fdl fopen-safer free gendocs 
getopt gnupload mkstemp obstack regex stdbool stdlib-safer strstr strtol 
unlocked-io verror xalloc xvasprintf
 
 # Specification in the form of a few gnulib-tool.m4 macro invocations:
 gl_LOCAL_DIR([])
-gl_MODULES([binary-io clean-temp cloexec close-stream closeout config-h error 
fdl fopen-safer free gendocs getopt gnupload mkstemp obstack regex stdlib-safer 
strstr strtol unlocked-io verror xalloc xvasprintf])
+gl_MODULES([binary-io clean-temp cloexec close-stream closeout config-h error 
fdl fopen-safer free gendocs getopt gnupload mkstemp obstack regex stdbool 
stdlib-safer strstr strtol unlocked-io verror xalloc xvasprintf])
 gl_AVOID([])
 gl_SOURCE_BASE([lib])
 gl_M4_BASE([m4])
Index: src/builtin.c
===================================================================
RCS file: /sources/m4/m4/src/Attic/builtin.c,v
retrieving revision 1.1.1.1.2.49
diff -u -r1.1.1.1.2.49 builtin.c
--- src/builtin.c       1 Nov 2006 13:44:54 -0000       1.1.1.1.2.49
+++ src/builtin.c       1 Nov 2006 22:22:49 -0000
@@ -98,60 +98,60 @@
 
   /* name              GNUext  macros  blind   function */
 
-  { "__file__",                TRUE,   FALSE,  FALSE,  m4___file__ },
-  { "__line__",                TRUE,   FALSE,  FALSE,  m4___line__ },
-  { "__program__",     TRUE,   FALSE,  FALSE,  m4___program__ },
-  { "builtin",         TRUE,   TRUE,   TRUE,   m4_builtin },
-  { "changecom",       FALSE,  FALSE,  FALSE,  m4_changecom },
-  { "changequote",     FALSE,  FALSE,  FALSE,  m4_changequote },
+  { "__file__",                true,   false,  false,  m4___file__ },
+  { "__line__",                true,   false,  false,  m4___line__ },
+  { "__program__",     true,   false,  false,  m4___program__ },
+  { "builtin",         true,   true,   true,   m4_builtin },
+  { "changecom",       false,  false,  false,  m4_changecom },
+  { "changequote",     false,  false,  false,  m4_changequote },
 #ifdef ENABLE_CHANGEWORD
-  { "changeword",      TRUE,   FALSE,  TRUE,   m4_changeword },
+  { "changeword",      true,   false,  true,   m4_changeword },
 #endif
-  { "debugmode",       TRUE,   FALSE,  FALSE,  m4_debugmode },
-  { "debugfile",       TRUE,   FALSE,  FALSE,  m4_debugfile },
-  { "decr",            FALSE,  FALSE,  TRUE,   m4_decr },
-  { "define",          FALSE,  TRUE,   TRUE,   m4_define },
-  { "defn",            FALSE,  FALSE,  TRUE,   m4_defn },
-  { "divert",          FALSE,  FALSE,  FALSE,  m4_divert },
-  { "divnum",          FALSE,  FALSE,  FALSE,  m4_divnum },
-  { "dnl",             FALSE,  FALSE,  FALSE,  m4_dnl },
-  { "dumpdef",         FALSE,  FALSE,  FALSE,  m4_dumpdef },
-  { "errprint",                FALSE,  FALSE,  TRUE,   m4_errprint },
-  { "esyscmd",         TRUE,   FALSE,  TRUE,   m4_esyscmd },
-  { "eval",            FALSE,  FALSE,  TRUE,   m4_eval },
-  { "format",          TRUE,   FALSE,  TRUE,   m4_format },
-  { "ifdef",           FALSE,  FALSE,  TRUE,   m4_ifdef },
-  { "ifelse",          FALSE,  FALSE,  TRUE,   m4_ifelse },
-  { "include",         FALSE,  FALSE,  TRUE,   m4_include },
-  { "incr",            FALSE,  FALSE,  TRUE,   m4_incr },
-  { "index",           FALSE,  FALSE,  TRUE,   m4_index },
-  { "indir",           TRUE,   TRUE,   TRUE,   m4_indir },
-  { "len",             FALSE,  FALSE,  TRUE,   m4_len },
-  { "m4exit",          FALSE,  FALSE,  FALSE,  m4_m4exit },
-  { "m4wrap",          FALSE,  FALSE,  TRUE,   m4_m4wrap },
-  { "maketemp",                FALSE,  FALSE,  TRUE,   m4_maketemp },
-  { "mkstemp",         FALSE,  FALSE,  TRUE,   m4_mkstemp },
-  { "patsubst",                TRUE,   FALSE,  TRUE,   m4_patsubst },
-  { "popdef",          FALSE,  FALSE,  TRUE,   m4_popdef },
-  { "pushdef",         FALSE,  TRUE,   TRUE,   m4_pushdef },
-  { "regexp",          TRUE,   FALSE,  TRUE,   m4_regexp },
-  { "shift",           FALSE,  FALSE,  TRUE,   m4_shift },
-  { "sinclude",                FALSE,  FALSE,  TRUE,   m4_sinclude },
-  { "substr",          FALSE,  FALSE,  TRUE,   m4_substr },
-  { "syscmd",          FALSE,  FALSE,  TRUE,   m4_syscmd },
-  { "sysval",          FALSE,  FALSE,  FALSE,  m4_sysval },
-  { "traceoff",                FALSE,  FALSE,  FALSE,  m4_traceoff },
-  { "traceon",         FALSE,  FALSE,  FALSE,  m4_traceon },
-  { "translit",                FALSE,  FALSE,  TRUE,   m4_translit },
-  { "undefine",                FALSE,  FALSE,  TRUE,   m4_undefine },
-  { "undivert",                FALSE,  FALSE,  FALSE,  m4_undivert },
+  { "debugmode",       true,   false,  false,  m4_debugmode },
+  { "debugfile",       true,   false,  false,  m4_debugfile },
+  { "decr",            false,  false,  true,   m4_decr },
+  { "define",          false,  true,   true,   m4_define },
+  { "defn",            false,  false,  true,   m4_defn },
+  { "divert",          false,  false,  false,  m4_divert },
+  { "divnum",          false,  false,  false,  m4_divnum },
+  { "dnl",             false,  false,  false,  m4_dnl },
+  { "dumpdef",         false,  false,  false,  m4_dumpdef },
+  { "errprint",                false,  false,  true,   m4_errprint },
+  { "esyscmd",         true,   false,  true,   m4_esyscmd },
+  { "eval",            false,  false,  true,   m4_eval },
+  { "format",          true,   false,  true,   m4_format },
+  { "ifdef",           false,  false,  true,   m4_ifdef },
+  { "ifelse",          false,  false,  true,   m4_ifelse },
+  { "include",         false,  false,  true,   m4_include },
+  { "incr",            false,  false,  true,   m4_incr },
+  { "index",           false,  false,  true,   m4_index },
+  { "indir",           true,   true,   true,   m4_indir },
+  { "len",             false,  false,  true,   m4_len },
+  { "m4exit",          false,  false,  false,  m4_m4exit },
+  { "m4wrap",          false,  false,  true,   m4_m4wrap },
+  { "maketemp",                false,  false,  true,   m4_maketemp },
+  { "mkstemp",         false,  false,  true,   m4_mkstemp },
+  { "patsubst",                true,   false,  true,   m4_patsubst },
+  { "popdef",          false,  false,  true,   m4_popdef },
+  { "pushdef",         false,  true,   true,   m4_pushdef },
+  { "regexp",          true,   false,  true,   m4_regexp },
+  { "shift",           false,  false,  true,   m4_shift },
+  { "sinclude",                false,  false,  true,   m4_sinclude },
+  { "substr",          false,  false,  true,   m4_substr },
+  { "syscmd",          false,  false,  true,   m4_syscmd },
+  { "sysval",          false,  false,  false,  m4_sysval },
+  { "traceoff",                false,  false,  false,  m4_traceoff },
+  { "traceon",         false,  false,  false,  m4_traceon },
+  { "translit",                false,  false,  true,   m4_translit },
+  { "undefine",                false,  false,  true,   m4_undefine },
+  { "undivert",                false,  false,  false,  m4_undivert },
 
-  { 0,                 FALSE,  FALSE,  FALSE,  0 },
+  { 0,                 false,  false,  false,  0 },
 
   /* placeholder is intentionally stuck after the table end delimiter,
      so that we can easily find it, while not treating it as a real
      builtin.  */
-  { "placeholder",     TRUE,   FALSE,  FALSE,  m4_placeholder },
+  { "placeholder",     true,   false,  false,  m4_placeholder },
 };
 
 static predefined const
@@ -288,10 +288,10 @@
 | applicable.                                                            |
 `------------------------------------------------------------------------*/
 
-static boolean
+static bool
 bad_argc (token_data *name, int argc, int min, int max)
 {
-  boolean isbad = FALSE;
+  bool isbad = false;
 
   if (min > 0 && argc < min)
     {
@@ -299,7 +299,7 @@
        M4ERROR ((warning_status, 0,
                  "Warning: too few arguments to builtin `%s'",
                  TOKEN_DATA_TEXT (name)));
-      isbad = TRUE;
+      isbad = true;
     }
   else if (max > 0 && argc > max && !suppress_warnings)
     M4ERROR ((warning_status, 0,
@@ -312,10 +312,10 @@
 /*--------------------------------------------------------------------------.
 | The function numeric_arg () converts ARG to an int pointed to by VALUEP.  |
 | If the conversion fails, print error message for macro MACRO.  Return
            |
-| TRUE iff conversion succeeds.                                        
            |
+| true iff conversion succeeds.                                        
            |
 `--------------------------------------------------------------------------*/
 
-static boolean
+static bool
 numeric_arg (token_data *macro, const char *arg, int *valuep)
 {
   char *endp;
@@ -336,7 +336,7 @@
          M4ERROR ((warning_status, 0,
                    "non-numeric argument to builtin `%s'",
                    TOKEN_DATA_TEXT (macro)));
-         return FALSE;
+         return false;
        }
       if (isspace (to_uchar (*arg)))
        M4ERROR ((warning_status, 0,
@@ -347,7 +347,7 @@
                  "numeric overflow detected in builtin `%s'",
                  TOKEN_DATA_TEXT (macro)));
     }
-  return TRUE;
+  return true;
 }
 
 /*------------------------------------------------------------------------.
@@ -361,7 +361,7 @@
 static const char *
 ntoa (register eval_t value, int radix)
 {
-  boolean negative;
+  bool negative;
   unsigned_eval_t uvalue;
   static char str[256];
   register char *s = &str[sizeof str];
@@ -370,12 +370,12 @@
 
   if (value < 0)
     {
-      negative = TRUE;
+      negative = true;
       uvalue = (unsigned_eval_t) -value;
     }
   else
     {
-      negative = FALSE;
+      negative = false;
       uvalue = (unsigned_eval_t) value;
     }
 
@@ -407,12 +407,12 @@
 
 /*----------------------------------------------------------------------.
 | Print ARGC arguments from the table ARGV to obstack OBS, separated by |
-| SEP, and quoted by the current quotes, if QUOTED is TRUE.            |
+| SEP, and quoted by the current quotes, if QUOTED is true.            |
 `----------------------------------------------------------------------*/
 
 static void
 dump_args (struct obstack *obs, int argc, token_data **argv,
-          const char *sep, boolean quoted)
+          const char *sep, bool quoted)
 {
   int i;
   size_t len = strlen (sep);
@@ -609,8 +609,9 @@
 };
 
 static void
-dump_symbol (symbol *sym, struct dump_symbol_data *data)
+dump_symbol (symbol *sym, void *arg)
 {
+  struct dump_symbol_data *data = (struct dump_symbol_data *) arg;
   if (!SYMBOL_SHADOWED (sym) && SYMBOL_TYPE (sym) != TOKEN_VOID)
     {
       obstack_blank (data->obs, sizeof (symbol *));
@@ -649,7 +650,7 @@
 
   if (argc == 1)
     {
-      hack_all_symbols (dump_symbol, (char *) &data);
+      hack_all_symbols (dump_symbol, &data);
     }
   else
     {
@@ -1134,7 +1135,7 @@
 {
   if (bad_argc (argv[0], argc, 2, -1))
     return;
-  dump_args (obs, argc - 1, argv + 1, ",", TRUE);
+  dump_args (obs, argc - 1, argv + 1, ",", true);
 }
 
 /*--------------------------------------------------------------------------.
@@ -1192,11 +1193,11 @@
 
 /*-------------------------------------------------------------------------.
 | Generic include function.  Include the file given by the first argument, |
-| if it exists.  Complain about inaccesible files iff SILENT is FALSE.    |
+| if it exists.  Complain about inaccesible files iff SILENT is false.    |
 `-------------------------------------------------------------------------*/
 
 static void
-include (int argc, token_data **argv, boolean silent)
+include (int argc, token_data **argv, bool silent)
 {
   FILE *fp;
   char *name;
@@ -1213,7 +1214,7 @@
       return;
     }
 
-  push_file (fp, name, TRUE);
+  push_file (fp, name, true);
   free (name);
 }
 
@@ -1224,7 +1225,7 @@
 static void
 m4_include (struct obstack *obs, int argc, token_data **argv)
 {
-  include (argc, argv, FALSE);
+  include (argc, argv, false);
 }
 
 /*----------------------------------.
@@ -1234,7 +1235,7 @@
 static void
 m4_sinclude (struct obstack *obs, int argc, token_data **argv)
 {
-  include (argc, argv, TRUE);
+  include (argc, argv, true);
 }
 
 /* More miscellaneous builtins -- "maketemp", "errprint", "__file__",
@@ -1265,7 +1266,7 @@
   obstack_1grow (obs, '\0');
 
   errno = 0;
-  fd = mkstemp (obstack_base (obs));
+  fd = mkstemp ((char *) obstack_base (obs));
   if (fd < 0)
     {
       M4ERROR ((0, errno, "cannot create tempfile `%s'", name));
@@ -1335,7 +1336,7 @@
 {
   if (bad_argc (argv[0], argc, 2, -1))
     return;
-  dump_args (obs, argc, argv, " ", FALSE);
+  dump_args (obs, argc, argv, " ", false);
   obstack_1grow (obs, '\0');
   debug_flush_files ();
   fprintf (stderr, "%s", (char *) obstack_finish (obs));
@@ -1420,9 +1421,9 @@
   if (no_gnu_extensions)
     obstack_grow (obs, ARG (1), strlen (ARG (1)));
   else
-    dump_args (obs, argc, argv, " ", FALSE);
+    dump_args (obs, argc, argv, " ", false);
   obstack_1grow (obs, '\0');
-  push_wrapup (obstack_finish (obs));
+  push_wrapup ((char *) obstack_finish (obs));
 }
 
 /* Enable tracing of all specified macros, or all, if none is specified.
@@ -1436,9 +1437,9 @@
 `-----------------------------------------------------------------------*/
 
 static void
-set_trace (symbol *sym, const char *data)
+set_trace (symbol *sym, void *data)
 {
-  SYMBOL_TRACED (sym) = (boolean) (data != NULL);
+  SYMBOL_TRACED (sym) = data != NULL;
   /* Remove placeholder from table if macro is undefined and untraced.  */
   if (SYMBOL_TYPE (sym) == TOKEN_VOID && data == NULL)
     lookup_symbol (SYMBOL_NAME (sym), SYMBOL_POPDEF);
@@ -1451,12 +1452,12 @@
   int i;
 
   if (argc == 1)
-    hack_all_symbols (set_trace, (char *) obs);
+    hack_all_symbols (set_trace, obs);
   else
     for (i = 1; i < argc; i++)
       {
        s = lookup_symbol (TOKEN_DATA_TEXT (argv[i]), SYMBOL_INSERT);
-       set_trace (s, (char *) obs);
+       set_trace (s, obs);
       }
 }
 
@@ -1673,7 +1674,7 @@
        obstack_1grow (obs, *s);
     }
   obstack_1grow (obs, '\0');
-  return obstack_finish (obs);
+  return (char *) obstack_finish (obs);
 }
 
 /*----------------------------------------------------------------------.
@@ -1687,9 +1688,9 @@
 static void
 m4_translit (struct obstack *obs, int argc, token_data **argv)
 {
-  const unsigned char *data;
-  const unsigned char *from;
-  const unsigned char *to;
+  const char *data;
+  const char *from;
+  const char *to;
   char map[256] = {0};
   char found[256] = {0};
 
@@ -1725,10 +1726,10 @@
      hence the found map.  */
   for ( ; *from; from++)
     {
-      if (! found[*from])
+      if (! found[to_uchar (*from)])
        {
-         found[*from] = 1;
-         map[*from] = *to;
+         found[to_uchar (*from)] = 1;
+         map[to_uchar (*from)] = *to;
        }
       if (*to != '\0')
        to++;
@@ -1736,10 +1737,10 @@
 
   for (data = ARG (1); *data; data++)
     {
-      if (! found[*data])
+      if (! found[to_uchar (*data)])
        obstack_1grow (obs, *data);
-      else if (map[*data])
-       obstack_1grow (obs, map[*data]);
+      else if (map[to_uchar (*data)])
+       obstack_1grow (obs, map[to_uchar (*data)]);
     }
 }
 
Index: src/debug.c
===================================================================
RCS file: /sources/m4/m4/src/Attic/debug.c,v
retrieving revision 1.1.1.1.2.10
diff -u -r1.1.1.1.2.10 debug.c
--- src/debug.c 11 Sep 2006 13:17:21 -0000      1.1.1.1.2.10
+++ src/debug.c 1 Nov 2006 22:22:49 -0000
@@ -200,11 +200,11 @@
 
 /*-------------------------------------------------------------------------.
 | Change the debug output to file NAME.  If NAME is NULL, debug output is  |
-| reverted to stderr, and if empty debug output is discarded.  Return TRUE |
+| reverted to stderr, and if empty debug output is discarded.  Return true |
 | iff the output stream was changed.                                      |
 `-------------------------------------------------------------------------*/
 
-boolean
+bool
 debug_set_output (const char *name)
 {
   FILE *fp;
@@ -217,14 +217,14 @@
     {
       fp = fopen (name, "a");
       if (fp == NULL)
-       return FALSE;
+       return false;
 
       if (set_cloexec_flag (fileno (fp), true) != 0)
        M4ERROR ((warning_status, errno,
                  "Warning: cannot protect debug file across forks"));
       debug_set_file (fp);
     }
-  return TRUE;
+  return true;
 }
 
 /*-----------------------------------------------------------------------.
@@ -271,7 +271,7 @@
 
   va_start (args, fmt);
 
-  while (TRUE)
+  while (true)
     {
       while ((ch = *fmt++) != '\0' && ch != '%')
        obstack_1grow (&trace, ch);
@@ -352,7 +352,7 @@
   char *line;
 
   obstack_1grow (&trace, '\0');
-  line = obstack_finish (&trace);
+  line = (char *) obstack_finish (&trace);
   DEBUG_PRINT1 ("%s\n", line);
   obstack_free (&trace, line);
 }
Index: src/eval.c
===================================================================
RCS file: /sources/m4/m4/src/Attic/eval.c,v
retrieving revision 1.1.1.1.2.6
diff -u -r1.1.1.1.2.6 eval.c
--- src/eval.c  27 Jul 2006 21:41:12 -0000      1.1.1.1.2.6
+++ src/eval.c  1 Nov 2006 22:22:49 -0000
@@ -267,7 +267,7 @@
 | Main entry point, called from "eval".         |
 `---------------------------------------*/
 
-boolean
+bool
 evaluate (const char *expr, eval_t *val)
 {
   eval_token et;
@@ -322,7 +322,7 @@
       abort ();
     }
 
-  return (boolean) (err != NO_ERROR);
+  return err != NO_ERROR;
 }
 
 /*---------------------------.
Index: src/freeze.c
===================================================================
RCS file: /sources/m4/m4/src/freeze.c,v
retrieving revision 1.1.1.1.2.13
diff -u -r1.1.1.1.2.13 freeze.c
--- src/freeze.c        13 Oct 2006 22:25:32 -0000      1.1.1.1.2.13
+++ src/freeze.c        1 Nov 2006 22:22:49 -0000
@@ -227,9 +227,9 @@
     M4ERROR ((EXIT_FAILURE, errno, "cannot open %s", name));
 
   allocated[0] = 100;
-  string[0] = xmalloc ((size_t) allocated[0]);
+  string[0] = xcharalloc ((size_t) allocated[0]);
   allocated[1] = 100;
-  string[1] = xmalloc ((size_t) allocated[1]);
+  string[1] = xcharalloc ((size_t) allocated[1]);
 
   /* Validate format version.  Only `1' is acceptable for now.  */
   GET_DIRECTIVE;
@@ -285,7 +285,7 @@
                 {
                   free (string[0]);
                   allocated[0] = number[0] + 1;
-                  string[0] = xmalloc ((size_t) allocated[0]);
+                  string[0] = xcharalloc ((size_t) allocated[0]);
                 }
 
               if (number[0] > 0)
@@ -301,7 +301,7 @@
             {
               free (string[1]);
               allocated[1] = number[1] + 1;
-              string[1] = xmalloc ((size_t) allocated[1]);
+              string[1] = xcharalloc ((size_t) allocated[1]);
             }
 
           if (number[1] > 0)
Index: src/input.c
===================================================================
RCS file: /sources/m4/m4/src/Attic/input.c,v
retrieving revision 1.1.1.1.2.31
diff -u -r1.1.1.1.2.31 input.c
--- src/input.c 29 Oct 2006 15:22:42 -0000      1.1.1.1.2.31
+++ src/input.c 1 Nov 2006 22:22:49 -0000
@@ -87,9 +87,9 @@
       struct
        {
          FILE *fp;             /* input file handle */
-         boolean end : 1;      /* true if peek has seen EOF */
-         boolean close : 1;    /* true if we should close file on pop */
-         boolean advance_line : 1; /* track previous start_of_input_line */
+         bool end : 1;         /* true if peek has seen EOF */
+         bool close : 1;       /* true if we should close file on pop */
+         bool advance_line : 1; /* track previous start_of_input_line */
        }
        u_f;    /* INPUT_FILE */
       builtin_func *func;      /* pointer to macro's function */
@@ -119,7 +119,7 @@
 static struct obstack *current_input;
 
 /* Bottom of token_stack, for obstack_free.  */
-static char *token_bottom;
+static void *token_bottom;
 
 /* Pointer to top of current_input.  */
 static input_block *isp;
@@ -131,10 +131,10 @@
 static input_block *next;
 
 /* Flag for next_char () to increment current_line.  */
-static boolean start_of_input_line;
+static bool start_of_input_line;
 
 /* Flag for next_char () to recognize change in input block.  */
-static boolean input_change;
+static bool input_change;
 
 #define CHAR_EOF       256     /* character return on EOF */
 #define CHAR_MACRO     257     /* character return for MACRO token */
@@ -174,7 +174,7 @@
 `-------------------------------------------------------------------*/
 
 void
-push_file (FILE *fp, const char *title, boolean close)
+push_file (FILE *fp, const char *title, bool close)
 {
   input_block *i;
 
@@ -190,12 +190,12 @@
   i = (input_block *) obstack_alloc (current_input,
                                     sizeof (struct input_block));
   i->type = INPUT_FILE;
-  i->file = obstack_copy0 (&file_names, title, strlen (title));
+  i->file = (char *) obstack_copy0 (&file_names, title, strlen (title));
   i->line = 1;
-  input_change = TRUE;
+  input_change = true;
 
   i->u.u_f.fp = fp;
-  i->u.u_f.end = FALSE;
+  i->u.u_f.end = false;
   i->u.u_f.close = close;
   i->u.u_f.advance_line = start_of_input_line;
   output_current_line = -1;
@@ -226,7 +226,7 @@
   i->type = INPUT_MACRO;
   i->file = current_file;
   i->line = current_line;
-  input_change = TRUE;
+  input_change = true;
 
   i->u.func = func;
   i->prev = isp;
@@ -277,11 +277,11 @@
   if (obstack_object_size (current_input) > 0)
     {
       obstack_1grow (current_input, '\0');
-      next->u.u_s.string = obstack_finish (current_input);
+      next->u.u_s.string = (char *) obstack_finish (current_input);
       next->prev = isp;
       isp = next;
       ret = isp->u.u_s.string; /* for immediate use only */
-      input_change = TRUE;
+      input_change = true;
     }
   else
     obstack_free (current_input, next); /* people might leave garbage on it. */
@@ -308,7 +308,7 @@
   i->type = INPUT_STRING;
   i->file = current_file;
   i->line = current_line;
-  i->u.u_s.string = obstack_copy0 (wrapup_stack, s, strlen (s));
+  i->u.u_s.string = (char *) obstack_copy0 (wrapup_stack, s, strlen (s));
   wsp = i;
 }
 
@@ -365,16 +365,16 @@
   next = NULL;                 /* might be set in push_string_init () */
 
   isp = tmp;
-  input_change = TRUE;
+  input_change = true;
 }
 
 /*------------------------------------------------------------------------.
 | To switch input over to the wrapup stack, main () calls pop_wrapup ().  |
 | Since wrapup text can install new wrapup text, pop_wrapup () returns   |
-| FALSE when there is no wrapup text on the stack, and TRUE otherwise.   |
+| false when there is no wrapup text on the stack, and true otherwise.   |
 `------------------------------------------------------------------------*/
 
-boolean
+bool
 pop_wrapup (void)
 {
   next = NULL;
@@ -389,7 +389,7 @@
       obstack_free (&file_names, NULL);
       obstack_free (wrapup_stack, NULL);
       free (wrapup_stack);
-      return FALSE;
+      return false;
     }
 
   current_input = wrapup_stack;
@@ -398,9 +398,9 @@
 
   isp = wsp;
   wsp = NULL;
-  input_change = TRUE;
+  input_change = true;
 
-  return TRUE;
+  return true;
 }
 
 /*-------------------------------------------------------------------.
@@ -456,7 +456,7 @@
              ungetc (ch, block->u.u_f.fp);
              return ch;
            }
-         block->u.u_f.end = TRUE;
+         block->u.u_f.end = true;
          break;
 
        case INPUT_MACRO:
@@ -505,7 +505,7 @@
        {
          current_file = isp->file;
          current_line = isp->line;
-         input_change = FALSE;
+         input_change = false;
        }
 
       switch (isp->type)
@@ -519,7 +519,7 @@
        case INPUT_FILE:
          if (start_of_input_line)
            {
-             start_of_input_line = FALSE;
+             start_of_input_line = false;
              current_line = ++isp->line;
            }
 
@@ -530,7 +530,7 @@
          if (ch != EOF)
            {
              if (ch == '\n')
-               start_of_input_line = TRUE;
+               start_of_input_line = true;
              return ch;
            }
          break;
@@ -576,35 +576,35 @@
      current_line, and that update will be undone as we return to
      expand_macro.  This informs next_char to fix things again.  */
   if (file != current_file || line != current_line)
-    input_change = TRUE;
+    input_change = true;
 }
 
 
 /*------------------------------------------------------------------.
 | This function is for matching a string against a prefix of the    |
 | input stream.  If the string matches the input and consume is     |
-| TRUE, the input is discarded; otherwise any characters read are   |
+| true, the input is discarded; otherwise any characters read are   |
 | pushed back again.  The function is used only when multicharacter |
 | quotes or comment delimiters are used.                            |
 `------------------------------------------------------------------*/
 
-static boolean
-match_input (const char *s, boolean consume)
+static bool
+match_input (const char *s, bool consume)
 {
   int n;                       /* number of characters matched */
   int ch;                      /* input character */
   const char *t;
-  boolean result = FALSE;
+  bool result = false;
 
   ch = peek_input ();
   if (ch != to_uchar (*s))
-    return FALSE;                      /* fail */
+    return false;                      /* fail */
 
   if (s[1] == '\0')
     {
       if (consume)
        (void) next_char ();
-      return TRUE;                     /* short match */
+      return true;                     /* short match */
     }
 
   (void) next_char ();
@@ -615,8 +615,8 @@
       if (*s == '\0')          /* long match */
        {
          if (consume)
-           return TRUE;
-         result = TRUE;
+           return true;
+         result = true;
          break;
        }
     }
@@ -676,7 +676,7 @@
   wsp = NULL;
   next = NULL;
 
-  start_of_input_line = FALSE;
+  start_of_input_line = false;
 
   lquote.string = xstrdup (DEF_LQUOTE);
   lquote.length = strlen (lquote.string);
@@ -771,7 +771,7 @@
 
   if (!*regexp || !strcmp (regexp, DEFAULT_WORD_REGEXP))
     {
-      default_word_regexp = TRUE;
+      default_word_regexp = true;
       return;
     }
 
@@ -800,10 +800,10 @@
                regexp, msg));
     }
 
-  default_word_regexp = FALSE;
+  default_word_regexp = false;
 
   if (word_start == NULL)
-    word_start = xmalloc (256);
+    word_start = (char *) xmalloc (256);
 
   word_start[0] = '\0';
   test[1] = '\0';
@@ -870,11 +870,11 @@
   next_char (); /* Consume character we already peeked at.  */
   file = current_file;
   line = current_line;
-  if (MATCH (ch, bcomm.string, TRUE))
+  if (MATCH (ch, bcomm.string, true))
     {
       obstack_grow (&token_stack, bcomm.string, bcomm.length);
       while ((ch = next_char ()) != CHAR_EOF
-            && !MATCH (ch, ecomm.string, TRUE))
+            && !MATCH (ch, ecomm.string, true))
        obstack_1grow (&token_stack, ch);
       if (ch != CHAR_EOF)
        obstack_grow (&token_stack, ecomm.string, ecomm.length);
@@ -908,7 +908,8 @@
          if (ch == CHAR_EOF)
            break;
          obstack_1grow (&token_stack, ch);
-         startpos = re_search (&word_regexp, obstack_base (&token_stack),
+         startpos = re_search (&word_regexp,
+                               (char *) obstack_base (&token_stack),
                                obstack_object_size (&token_stack), 0, 0,
                                &regs);
          if (startpos != 0 ||
@@ -922,7 +923,7 @@
        }
 
       obstack_1grow (&token_stack, '\0');
-      orig_text = obstack_finish (&token_stack);
+      orig_text = (char *) obstack_finish (&token_stack);
 
       if (regs.start[1] != -1)
        obstack_grow (&token_stack,orig_text + regs.start[1],
@@ -935,7 +936,7 @@
 
 #endif /* ENABLE_CHANGEWORD */
 
-  else if (!MATCH (ch, lquote.string, TRUE))
+  else if (!MATCH (ch, lquote.string, true))
     {
       switch (ch)
        {
@@ -966,13 +967,13 @@
            M4ERROR_AT_LINE ((EXIT_FAILURE, 0, file, line,
                              "ERROR: end of file in string"));
 
-         if (MATCH (ch, rquote.string, TRUE))
+         if (MATCH (ch, rquote.string, true))
            {
              if (--quote_level == 0)
                break;
              obstack_grow (&token_stack, rquote.string, rquote.length);
            }
-         else if (MATCH (ch, lquote.string, TRUE))
+         else if (MATCH (ch, lquote.string, true))
            {
              quote_level++;
              obstack_grow (&token_stack, lquote.string, lquote.length);
@@ -986,7 +987,7 @@
   obstack_1grow (&token_stack, '\0');
 
   TOKEN_DATA_TYPE (td) = TOKEN_TEXT;
-  TOKEN_DATA_TEXT (td) = obstack_finish (&token_stack);
+  TOKEN_DATA_TEXT (td) = (char *) obstack_finish (&token_stack);
 #ifdef ENABLE_CHANGEWORD
   if (orig_text == NULL)
     orig_text = TOKEN_DATA_TEXT (td);
@@ -1017,7 +1018,7 @@
     {
       result = TOKEN_MACDEF;
     }
-  else if (MATCH (ch, bcomm.string, FALSE))
+  else if (MATCH (ch, bcomm.string, false))
     {
       result = TOKEN_STRING;
     }
@@ -1029,7 +1030,7 @@
     {
       result = TOKEN_WORD;
     }
-  else if (MATCH (ch, lquote.string, FALSE))
+  else if (MATCH (ch, lquote.string, false))
     {
       result = TOKEN_STRING;
     }
Index: src/m4.c
===================================================================
RCS file: /sources/m4/m4/src/Attic/m4.c,v
retrieving revision 1.1.1.1.2.36
diff -u -r1.1.1.1.2.36 m4.c
--- src/m4.c    1 Nov 2006 13:44:54 -0000       1.1.1.1.2.36
+++ src/m4.c    1 Nov 2006 22:22:49 -0000
@@ -257,20 +257,20 @@
    where we try to continue execution in the meantime.  */
 int retcode;
 
-/* Process a command line file NAME, and return TRUE only if it was
+/* Process a command line file NAME, and return true only if it was
    stdin.  */
-static boolean
+static bool
 process_file (const char *name)
 {
-  boolean result = FALSE;
+  bool result = false;
   if (strcmp (name, "-") == 0)
     {
       /* If stdin is a terminal, we want to allow 'm4 - file -'
         to read input from stdin twice, like GNU cat.  Besides,
         there is no point closing stdin before wrapped text, to
         minimize bugs in syscmd called from wrapped text.  */
-      push_file (stdin, "stdin", FALSE);
-      result = TRUE;
+      push_file (stdin, "stdin", false);
+      result = true;
     }
   else
     {
@@ -282,9 +282,9 @@
          /* Set the status to EXIT_FAILURE, even though we
             continue to process files after a missing file.  */
          retcode = EXIT_FAILURE;
-         return FALSE;
+         return false;
        }
-      push_file (fp, full_name, TRUE);
+      push_file (fp, full_name, true);
       free (full_name);
     }
   expand_input ();
@@ -311,9 +311,9 @@
   int optchar;                 /* option character */
 
   macro_definition *defines;
-  boolean read_stdin = FALSE;
-  boolean interactive = FALSE;
-  boolean seen_file = FALSE;
+  bool read_stdin = false;
+  bool interactive = false;
+  bool seen_file = false;
   const char *debugfile = NULL;
   const char *frozen_file_to_read = NULL;
   const char *frozen_file_to_write = NULL;
@@ -432,7 +432,7 @@
        error (0, 0, "Warning: `m4 -e' is deprecated, use `-i' instead");
        /* fall through */
       case 'i':
-       interactive = TRUE;
+       interactive = true;
        break;
 
       case 'l':
@@ -520,7 +520,7 @@
 
        case 't':
          sym = lookup_symbol (defines->arg, SYMBOL_INSERT);
-         SYMBOL_TRACED (sym) = TRUE;
+         SYMBOL_TRACED (sym) = true;
          break;
 
        case 's':
@@ -528,8 +528,9 @@
          break;
 
        case '\1':
-         seen_file = TRUE;
-         read_stdin |= process_file (defines->arg);
+         seen_file = true;
+         if (process_file (defines->arg))
+           read_stdin = true;
          break;
 
        default:
@@ -550,7 +551,8 @@
     read_stdin = process_file ("-");
   else
     for (; optind < argc; optind++)
-      read_stdin |= process_file (argv[optind]);
+      if (process_file (defines->arg))
+       read_stdin = true;
 
   /* Now handle wrapup text.  */
 
Index: src/m4.h
===================================================================
RCS file: /sources/m4/m4/src/m4.h,v
retrieving revision 1.1.1.1.2.32
diff -u -r1.1.1.1.2.32 m4.h
--- src/m4.h    1 Nov 2006 13:44:54 -0000       1.1.1.1.2.32
+++ src/m4.h    1 Nov 2006 22:22:49 -0000
@@ -27,6 +27,7 @@
 
 #include <ctype.h>
 #include <errno.h>
+#include <stdbool.h>
 #include <string.h>
 #include <sys/types.h>
 
@@ -64,19 +65,6 @@
 # define OS2 1
 #endif
 
-/* If FALSE is defined, we presume TRUE is defined too.  In this case,
-   merely typedef boolean as being int.  Or else, define these all.  */
-#ifndef FALSE
-/* Do not use `enum boolean': this tag is used in SVR4 <sys/types.h>.  */
-typedef enum { FALSE = 0, TRUE = 1 } boolean;
-#else
-typedef int boolean;
-#endif
-
-#if ! HAVE_MKSTEMP
-int mkstemp (char *);
-#endif
-
 /* Used for version mismatch, when -R detects a frozen file it can't parse.  */
 #define EXIT_MISMATCH 63
 
@@ -228,7 +216,7 @@
 void debug_init (void);
 int debug_decode (const char *);
 void debug_flush_files (void);
-boolean debug_set_output (const char *);
+bool debug_set_output (const char *);
 void debug_message_prefix (void);
 
 void trace_prepre (const char *, int);
@@ -292,12 +280,12 @@
 void skip_line (void);
 
 /* push back input */
-void push_file (FILE *, const char *, boolean);
+void push_file (FILE *, const char *, bool);
 void push_macro (builtin_func *);
 struct obstack *push_string_init (void);
 const char *push_string_finish (void);
 void push_wrapup (const char *);
-boolean pop_wrapup (void);
+bool pop_wrapup (void);
 
 /* current input file, and line */
 extern const char *current_file;
@@ -345,11 +333,11 @@
 struct symbol
 {
   struct symbol *next;
-  boolean traced : 1;
-  boolean shadowed : 1;
-  boolean macro_args : 1;
-  boolean blind_no_args : 1;
-  boolean deleted : 1;
+  bool traced : 1;
+  bool shadowed : 1;
+  bool macro_args : 1;
+  bool blind_no_args : 1;
+  bool deleted : 1;
   int pending_expansions;
 
   char *name;
@@ -370,7 +358,7 @@
 
 typedef enum symbol_lookup symbol_lookup;
 typedef struct symbol symbol;
-typedef void hack_symbol ();
+typedef void hack_symbol (symbol *, void *);
 
 #define HASHMAX 509            /* default, overridden by -Hsize */
 
@@ -379,7 +367,7 @@
 void free_symbol (symbol *sym);
 void symtab_init (void);
 symbol *lookup_symbol (const char *, symbol_lookup);
-void hack_all_symbols (hack_symbol *, const char *);
+void hack_all_symbols (hack_symbol *, void *);
 
 /* File: macro.c  --- macro expansion.  */
 
@@ -391,9 +379,9 @@
 struct builtin
 {
   const char *name;
-  boolean gnu_extension : 1;
-  boolean groks_macro_args : 1;
-  boolean blind_if_no_args : 1;
+  bool gnu_extension : 1;
+  bool groks_macro_args : 1;
+  bool blind_if_no_args : 1;
   builtin_func *func;
 };
 
@@ -430,7 +418,7 @@
 typedef int eval_t;
 typedef unsigned int unsigned_eval_t;
 
-boolean evaluate (const char *, eval_t *);
+bool evaluate (const char *, eval_t *);
 
 /* File: format.c  --- printf like formatting.  */
 
Index: src/macro.c
===================================================================
RCS file: /sources/m4/m4/src/Attic/macro.c,v
retrieving revision 1.1.1.1.2.15
diff -u -r1.1.1.1.2.15 macro.c
--- src/macro.c 26 Oct 2006 21:11:56 -0000      1.1.1.1.2.15
+++ src/macro.c 1 Nov 2006 22:22:49 -0000
@@ -134,7 +134,7 @@
 | obstack OBS, indirectly through expand_token ().                        |
 `-------------------------------------------------------------------------*/
 
-static boolean
+static bool
 expand_argument (struct obstack *obs, token_data *argp)
 {
   token_type t;
@@ -166,14 +166,14 @@
            {
              /* The argument MUST be finished, whether we want it or not.  */
              obstack_1grow (obs, '\0');
-             text = obstack_finish (obs);
+             text = (char *) obstack_finish (obs);
 
              if (TOKEN_DATA_TYPE (argp) == TOKEN_VOID)
                {
                  TOKEN_DATA_TYPE (argp) = TOKEN_TEXT;
                  TOKEN_DATA_TEXT (argp) = text;
                }
-             return (boolean) (t == TOKEN_COMMA);
+             return t == TOKEN_COMMA;
            }
          /* fallthru */
        case TOKEN_OPEN:
@@ -229,8 +229,8 @@
 {
   token_data td;
   token_data *tdp;
-  boolean more_args;
-  boolean groks_macro_args = SYMBOL_MACRO_ARGS (sym);
+  bool more_args;
+  bool groks_macro_args = SYMBOL_MACRO_ARGS (sym);
 
   TOKEN_DATA_TYPE (&td) = TOKEN_TEXT;
   TOKEN_DATA_TEXT (&td) = SYMBOL_NAME (sym);
@@ -302,12 +302,12 @@
 {
   struct obstack arguments;    /* Alternate obstack if argc_stack is busy.  */
   unsigned argv_base;          /* Size of argv_stack on entry.  */
-  boolean use_argc_stack = TRUE;       /* Whether argc_stack is safe.  */
+  bool use_argc_stack = true;  /* Whether argc_stack is safe.  */
   token_data **argv;
   int argc;
   struct obstack *expansion;
   const char *expanded;
-  boolean traced;
+  bool traced;
   int my_call_id;
 
   /* Report errors at the location where the open parenthesis (if any)
@@ -331,17 +331,17 @@
   macro_call_id++;
   my_call_id = macro_call_id;
 
-  traced = (boolean) ((debug_level & DEBUG_TRACE_ALL) || SYMBOL_TRACED (sym));
+  traced = (debug_level & DEBUG_TRACE_ALL) || SYMBOL_TRACED (sym);
 
   argv_base = obstack_object_size (&argv_stack);
   if (obstack_object_size (&argc_stack) > 0)
-  {
-    /* We cannot use argc_stack if this is a nested invocation, and an
-       outer invocation has an unfinished argument being
-       collected.  */
-     obstack_init (&arguments);
-     use_argc_stack = FALSE;
-  }
+    {
+      /* We cannot use argc_stack if this is a nested invocation, and an
+        outer invocation has an unfinished argument being
+        collected.  */
+      obstack_init (&arguments);
+      use_argc_stack = false;
+    }
 
   if (traced && (debug_level & DEBUG_TRACE_CALL))
     trace_prepre (SYMBOL_NAME (sym), my_call_id);
Index: src/output.c
===================================================================
RCS file: /sources/m4/m4/src/Attic/output.c,v
retrieving revision 1.1.1.1.2.13
diff -u -r1.1.1.1.2.13 output.c
--- src/output.c        26 Oct 2006 21:11:56 -0000      1.1.1.1.2.13
+++ src/output.c        1 Nov 2006 22:22:49 -0000
@@ -325,7 +325,7 @@
 void
 shipout_text (struct obstack *obs, const char *text, int length)
 {
-  static boolean start_of_output_line = TRUE;
+  static bool start_of_output_line = true;
   char line[20];
   const char *cursor;
 
@@ -371,7 +371,7 @@
       {
        if (start_of_output_line)
          {
-           start_of_output_line = FALSE;
+           start_of_output_line = false;
            output_current_line++;
 
 #ifdef DEBUG_OUTPUT
@@ -402,7 +402,7 @@
          }
        OUTPUT_CHARACTER (*text);
        if (*text == '\n')
-         start_of_output_line = TRUE;
+         start_of_output_line = true;
       }
 }
 
Index: src/symtab.c
===================================================================
RCS file: /sources/m4/m4/src/Attic/symtab.c,v
retrieving revision 1.1.1.1.2.14
diff -u -r1.1.1.1.2.14 symtab.c
--- src/symtab.c        26 Oct 2006 04:55:20 -0000      1.1.1.1.2.14
+++ src/symtab.c        1 Nov 2006 22:22:49 -0000
@@ -141,7 +141,7 @@
 free_symbol (symbol *sym)
 {
   if (SYMBOL_PENDING_EXPANSIONS (sym) > 0)
-    SYMBOL_DELETED (sym) = TRUE;
+    SYMBOL_DELETED (sym) = true;
   else
     {
       free (SYMBOL_NAME (sym));
@@ -211,16 +211,16 @@
          if (SYMBOL_PENDING_EXPANSIONS (sym) > 0)
            {
              symbol *old = sym;
-             SYMBOL_DELETED (old) = TRUE;
+             SYMBOL_DELETED (old) = true;
 
              sym = (symbol *) xmalloc (sizeof (symbol));
              SYMBOL_TYPE (sym) = TOKEN_VOID;
              SYMBOL_TRACED (sym) = SYMBOL_TRACED (old);
              SYMBOL_NAME (sym) = xstrdup (name);
-             SYMBOL_SHADOWED (sym) = FALSE;
-             SYMBOL_MACRO_ARGS (sym) = FALSE;
-             SYMBOL_BLIND_NO_ARGS (sym) = FALSE;
-             SYMBOL_DELETED (sym) = FALSE;
+             SYMBOL_SHADOWED (sym) = false;
+             SYMBOL_MACRO_ARGS (sym) = false;
+             SYMBOL_BLIND_NO_ARGS (sym) = false;
+             SYMBOL_DELETED (sym) = false;
              SYMBOL_PENDING_EXPANSIONS (sym) = 0;
 
              SYMBOL_NEXT (sym) = SYMBOL_NEXT (old);
@@ -239,12 +239,12 @@
 
       sym = (symbol *) xmalloc (sizeof (symbol));
       SYMBOL_TYPE (sym) = TOKEN_VOID;
-      SYMBOL_TRACED (sym) = FALSE;
+      SYMBOL_TRACED (sym) = false;
       SYMBOL_NAME (sym) = xstrdup (name);
-      SYMBOL_SHADOWED (sym) = FALSE;
-      SYMBOL_MACRO_ARGS (sym) = FALSE;
-      SYMBOL_BLIND_NO_ARGS (sym) = FALSE;
-      SYMBOL_DELETED (sym) = FALSE;
+      SYMBOL_SHADOWED (sym) = false;
+      SYMBOL_MACRO_ARGS (sym) = false;
+      SYMBOL_BLIND_NO_ARGS (sym) = false;
+      SYMBOL_DELETED (sym) = false;
       SYMBOL_PENDING_EXPANSIONS (sym) = 0;
 
       SYMBOL_NEXT (sym) = *spp;
@@ -252,7 +252,7 @@
 
       if (mode == SYMBOL_PUSHDEF && cmp == 0)
        {
-         SYMBOL_SHADOWED (SYMBOL_NEXT (sym)) = TRUE;
+         SYMBOL_SHADOWED (SYMBOL_NEXT (sym)) = true;
          SYMBOL_TRACED (sym) = SYMBOL_TRACED (SYMBOL_NEXT (sym));
        }
       return sym;
@@ -270,12 +270,12 @@
       if (cmp != 0 || sym == NULL)
        return NULL;
       {
-       boolean traced = FALSE;
+       bool traced = false;
        if (SYMBOL_NEXT (sym) != NULL
            && SYMBOL_SHADOWED (SYMBOL_NEXT (sym))
            && mode == SYMBOL_POPDEF)
          {
-           SYMBOL_SHADOWED (SYMBOL_NEXT (sym)) = FALSE;
+           SYMBOL_SHADOWED (SYMBOL_NEXT (sym)) = false;
            SYMBOL_TRACED (SYMBOL_NEXT (sym)) = SYMBOL_TRACED (sym);
          }
        else
@@ -292,12 +292,12 @@
          {
            sym = (symbol *) xmalloc (sizeof (symbol));
            SYMBOL_TYPE (sym) = TOKEN_VOID;
-           SYMBOL_TRACED (sym) = TRUE;
+           SYMBOL_TRACED (sym) = true;
            SYMBOL_NAME (sym) = xstrdup (name);
-           SYMBOL_SHADOWED (sym) = FALSE;
-           SYMBOL_MACRO_ARGS (sym) = FALSE;
-           SYMBOL_BLIND_NO_ARGS (sym) = FALSE;
-           SYMBOL_DELETED (sym) = FALSE;
+           SYMBOL_SHADOWED (sym) = false;
+           SYMBOL_MACRO_ARGS (sym) = false;
+           SYMBOL_BLIND_NO_ARGS (sym) = false;
+           SYMBOL_DELETED (sym) = false;
            SYMBOL_PENDING_EXPANSIONS (sym) = 0;
 
            SYMBOL_NEXT (sym) = *spp;
@@ -325,7 +325,7 @@
 `-----------------------------------------------------------------*/
 
 void
-hack_all_symbols (hack_symbol *func, const char *data)
+hack_all_symbols (hack_symbol *func, void *data)
 {
   size_t h;
   symbol *sym;
@@ -339,7 +339,7 @@
       for (sym = symtab[h]; sym != NULL; sym = next)
        {
          next = SYMBOL_NEXT (sym);
-         (*func) (sym, data);
+         func (sym, data);
        }
     }
 }






reply via email to

[Prev in Thread] Current Thread [Next in Thread]