ABI change on master

Eric Blake <[email protected]>
Newsgroups gmane.comp.gnu.m4.patches
Message-ID <[email protected]>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

In the previous patch, I noticed that I had coded up 'unsigned int argc'
but 'size_t arraylen' in struct m4_macro_args.   This inconsistency could
lead to inadvertent overflow bugs if one type is smaller than the other;
plus, a smaller type is contrary to the GNU philosophy of no arbitrary
limits (although I really doubt anyone intends to pass more than 2 billion
arguments to a macro :).  So I'm committing this patch that makes all
argument counts size_t.  This is an ABI-incompatible change for platforms
with 32-bit int and 64-bit size_t; any modules compiled prior to this
point will fail when loaded by the libm4 after this patch.  But since the
master branch has never been through a formal release, I don't feel bad
about changing the module interface; besides, I still have a TODO item to
update the module interface to use functions instead of data entry points
for defining builtins, so the interface is not stable yet.

- --
Don't work too hard, make some time for fun as well!

Eric Blake             [email protected]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHpPqg84KuGfSFAYARAlpoAJ9Tx5f7uAKNCikTIqP/TWMKOlW+ngCgkvaC
yc5sw7ayXs6NDFkOOSA4pCE=
=C1Td
-----END PGP SIGNATURE-----

_______________________________________________
M4-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/m4-patches
m4.patch316 (text/plain, 23.4 KB)
From 9123df1a730177cdfcd9cbbe17c5275c9473bccf Mon Sep 17 00:00:00 2001
From: Eric Blake <[email protected]>
Date: Sat, 2 Feb 2008 14:55:08 -0700
Subject: [PATCH] Consistently use size_t for number of arguments.

* m4/m4module.h (m4_builtin_func): Alter prototype.
(struct m4_builtin): Adjust type of min_args, max_args.
(M4BUILTIN, M4BUILTIN_HANDLER): Adjust all builtins.
(m4_bad_argc, m4_dump_args, m4_macro_call, m4_arg_argc)
(m4_arg_symbol, m4_is_arg_text, m4_is_arg_func, m4_arg_text)
(m4_arg_equal, m4_arg_empty, m4_arg_len, m4_arg_func)
(m4_arg_print, m4_push_arg): Adjust all clients.
* m4/m4private.h (struct m4__symbol_chain, m4_symbol_value)
(m4_macro_args): Adjust type of various fields.
(m4__push_arg_quote): Adjust all clients.
* m4/input.c (m4_pop_wrapup): Likewise.
* m4/macro.c (m4_macro_call, trace_pre, make_argv_ref)
(arg_symbol, m4_arg_symbol, m4_is_arg_text, m4_is_arg_func)
(m4_arg_text, m4_arg_equal, m4_arg_empty, m4_arg_len)
(m4_arg_func, m4_arg_print, m4_make_argv_ref, m4_push_arg)
(m4__push_arg_quote, m4_push_args, m4_arg_argc): Likewise.
* m4/utility.c (m4_bad_argc, m4_dump_args): Likewise.
* modules/evalparse.c (m4_evaluate): Likewise.
* modules/gnu.c (changesyntax): Likewise.
* modules/m4.c (m4_dump_symbols, undefine, popdef, ifelse, defn)
(undivert, traceon, traceoff): Likewise.
* modules/m4.h (m4_dump_symbols_func): Likewise.
* modules/perl.c (perleval): Likewise.

Signed-off-by: Eric Blake <[email protected]>
---
 ChangeLog           |   25 +++++++++++++++++++++++++
 m4/input.c          |    3 +--
 m4/m4module.h       |   45 +++++++++++++++++++++------------------------
 m4/m4private.h      |   10 +++++-----
 m4/macro.c          |   43 +++++++++++++++++++++----------------------
 m4/utility.c        |   12 ++++++------
 modules/evalparse.c |    7 +++----
 modules/gnu.c       |    2 +-
 modules/m4.c        |   21 ++++++++++-----------
 modules/m4.h        |    6 +++---
 modules/perl.c      |    5 +++--
 11 files changed, 99 insertions(+), 80 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index a732959..8ee5d0f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,30 @@
 2008-02-02  Eric Blake  <[email protected]>
 
+	Consistently use size_t for number of arguments.
+	* m4/m4module.h (m4_builtin_func): Alter prototype.
+	(struct m4_builtin): Adjust type of min_args, max_args.
+	(M4BUILTIN, M4BUILTIN_HANDLER): Adjust all builtins.
+	(m4_bad_argc, m4_dump_args, m4_macro_call, m4_arg_argc)
+	(m4_arg_symbol, m4_is_arg_text, m4_is_arg_func, m4_arg_text)
+	(m4_arg_equal, m4_arg_empty, m4_arg_len, m4_arg_func)
+	(m4_arg_print, m4_push_arg): Adjust all clients.
+	* m4/m4private.h (struct m4__symbol_chain, m4_symbol_value)
+	(m4_macro_args): Adjust type of various fields.
+	(m4__push_arg_quote): Adjust all clients.
+	* m4/input.c (m4_pop_wrapup): Likewise.
+	* m4/macro.c (m4_macro_call, trace_pre, make_argv_ref)
+	(arg_symbol, m4_arg_symbol, m4_is_arg_text, m4_is_arg_func)
+	(m4_arg_text, m4_arg_equal, m4_arg_empty, m4_arg_len)
+	(m4_arg_func, m4_arg_print, m4_make_argv_ref, m4_push_arg)
+	(m4__push_arg_quote, m4_push_args, m4_arg_argc): Likewise.
+	* m4/utility.c (m4_bad_argc, m4_dump_args): Likewise.
+	* modules/evalparse.c (m4_evaluate): Likewise.
+	* modules/gnu.c (changesyntax): Likewise.
+	* modules/m4.c (m4_dump_symbols, undefine, popdef, ifelse, defn)
+	(undivert, traceon, traceoff): Likewise.
+	* modules/m4.h (m4_dump_symbols_func): Likewise.
+	* modules/perl.c (perleval): Likewise.
+
 	Stage 14b: allow pushing argv references.
 	Push a $@ reference to the input engine in one go, rather than
 	pushing each element.  For now, argument collection still gets one
diff --git a/m4/input.c b/m4/input.c
index 1815009..025ae0d 100644
--- a/m4/input.c
+++ b/m4/input.c
@@ -1035,8 +1035,7 @@ m4_pop_wrapup (m4 *context)
     }
 
   m4_debug_message (context, M4_DEBUG_TRACE_INPUT,
-		    _("input from m4wrap recursion level %lu"),
-		    (unsigned long int) ++level);
+		    _("input from m4wrap recursion level %zu"), ++level);
 
   current_input = wrapup_stack;
   wrapup_stack = (m4_obstack *) xmalloc (sizeof *wrapup_stack);
diff --git a/m4/m4module.h b/m4/m4module.h
index 77cfa52..bdb31a3 100644
--- a/m4/m4module.h
+++ b/m4/m4module.h
@@ -42,8 +42,7 @@ typedef struct m4_string_pair	m4_string_pair;
 
 typedef struct obstack		m4_obstack;
 
-typedef void   m4_builtin_func  (m4 *, m4_obstack *, unsigned int,
-				 m4_macro_args *);
+typedef void   m4_builtin_func  (m4 *, m4_obstack *, size_t, m4_macro_args *);
 
 /* The value of m4_builtin flags is built from these:  */
 enum {
@@ -67,9 +66,9 @@ struct m4_builtin
   m4_builtin_func * func;	/* implementation of the builtin */
   const char *	    name;	/* name found by builtin, printed by dumpdef */
   int		    flags;	/* bitwise OR of M4_BUILTIN_* bits */
-  unsigned int	    min_args;	/* 0-based minimum number of arguments */
+  size_t	    min_args;	/* 0-based minimum number of arguments */
   /* max arguments, UINT_MAX if unlimited; must be >= min_args */
-  unsigned int	    max_args;
+  size_t	    max_args;
 };
 
 struct m4_macro
@@ -89,11 +88,11 @@ struct m4_string_pair
 
 #define M4BUILTIN(name)							\
   static void CONC (builtin_, name)					\
-   (m4 *context, m4_obstack *obs, unsigned int argc, m4_macro_args *argv);
+   (m4 *context, m4_obstack *obs, size_t argc, m4_macro_args *argv);
 
 #define M4BUILTIN_HANDLER(name)						\
   static void CONC (builtin_, name)					\
-   (m4 *context, m4_obstack *obs, unsigned int argc, m4_macro_args *argv)
+   (m4 *context, m4_obstack *obs, size_t argc, m4_macro_args *argv)
 
 #define M4INIT_HANDLER(name)						\
   void CONC (name, CONC (_LTX_, m4_init_module))			\
@@ -121,10 +120,10 @@ struct m4_string_pair
    scope.  */
 #define M4ARGLEN(i) m4_arg_len (argv, i)
 
-extern bool	m4_bad_argc	   (m4 *, int, const char *,
-				    unsigned int, unsigned int, bool);
+extern bool	m4_bad_argc	   (m4 *, int, const char *, size_t, size_t,
+				    bool);
 extern bool	m4_numeric_arg	   (m4 *, const char *, const char *, int *);
-extern void	m4_dump_args	   (m4 *, m4_obstack *, unsigned int,
+extern void	m4_dump_args	   (m4 *, m4_obstack *, size_t,
 				    m4_macro_args *, const char *, bool);
 extern bool	m4_parse_truth_arg (m4 *, const char *, const char *, bool);
 
@@ -313,27 +312,25 @@ extern const m4_builtin	*m4_builtin_find_by_func (m4_module *,
 /* --- MACRO MANAGEMENT --- */
 
 extern void	m4_macro_expand_input	(m4 *);
-extern void	m4_macro_call		(m4 *, m4_symbol_value *,
-					 m4_obstack *, unsigned int,
-					 m4_macro_args *);
-extern unsigned int m4_arg_argc		(m4_macro_args *);
-extern m4_symbol_value *m4_arg_symbol	(m4_macro_args *, unsigned int);
-extern bool	m4_is_arg_text		(m4_macro_args *, unsigned int);
-extern bool	m4_is_arg_func		(m4_macro_args *, unsigned int);
-extern const char *m4_arg_text		(m4 *, m4_macro_args *, unsigned int);
-extern bool	m4_arg_equal		(m4_macro_args *, unsigned int,
-					 unsigned int);
-extern bool	m4_arg_empty		(m4_macro_args *, unsigned int);
-extern size_t	m4_arg_len		(m4_macro_args *, unsigned int);
-extern m4_builtin_func *m4_arg_func	(m4_macro_args *, unsigned int);
+extern void	m4_macro_call		(m4 *, m4_symbol_value *, m4_obstack *,
+					 size_t, m4_macro_args *);
+extern size_t	m4_arg_argc		(m4_macro_args *);
+extern m4_symbol_value *m4_arg_symbol	(m4_macro_args *, size_t);
+extern bool	m4_is_arg_text		(m4_macro_args *, size_t);
+extern bool	m4_is_arg_func		(m4_macro_args *, size_t);
+extern const char *m4_arg_text		(m4 *, m4_macro_args *, size_t);
+extern bool	m4_arg_equal		(m4_macro_args *, size_t, size_t);
+extern bool	m4_arg_empty		(m4_macro_args *, size_t);
+extern size_t	m4_arg_len		(m4_macro_args *, size_t);
+extern m4_builtin_func *m4_arg_func	(m4_macro_args *, size_t);
 extern m4_obstack *m4_arg_scratch	(m4 *);
 extern bool	m4_arg_print		(m4_obstack *, m4_macro_args *,
-					 unsigned int, const m4_string_pair *,
+					 size_t, const m4_string_pair *,
 					 size_t *, bool);
 extern m4_macro_args *m4_make_argv_ref	(m4 *, m4_macro_args *, const char *,
 					 size_t, bool, bool);
 extern void	m4_push_arg		(m4 *, m4_obstack *, m4_macro_args *,
-					 unsigned int);
+					 size_t);
 extern void	m4_push_args		(m4 *, m4_obstack *, m4_macro_args *,
 					 bool, bool);
 
diff --git a/m4/m4private.h b/m4/m4private.h
index 1ce5813..28ac867 100644
--- a/m4/m4private.h
+++ b/m4/m4private.h
@@ -218,7 +218,7 @@ struct m4__symbol_chain
     struct
     {
       m4_macro_args *argv;		/* Reference to earlier $@.  */
-      unsigned int index;		/* Argument index within argv.  */
+      size_t index;			/* Argument index within argv.  */
       bool_bitfield flatten : 1;	/* True to treat builtins as text.  */
       bool_bitfield comma : 1;		/* True when `,' is next input.  */
       const m4_string_pair *quotes;	/* NULL for $*, quotes for $@.  */
@@ -235,8 +235,8 @@ struct m4_symbol_value
   unsigned int		flags;
 
   m4_hash *		arg_signature;
-  unsigned int		min_args;
-  unsigned int		max_args;
+  size_t		min_args;
+  size_t		max_args;
   size_t		pending_expansions;
 
   m4__symbol_type	type;
@@ -266,7 +266,7 @@ struct m4_macro_args
   /* One more than the highest actual argument.  May be larger than
      arraylen since the array can refer to multiple arguments via a
      single $@ reference.  */
-  unsigned int argc;
+  size_t argc;
   /* False unless the macro expansion refers to $@; determines whether
      this object can be freed at end of macro expansion or must wait
      until all references have been rescanned.  */
@@ -305,7 +305,7 @@ struct m4__macro_arg_stacks
 extern size_t	m4__adjust_refcount	(m4 *, size_t, bool);
 extern bool	m4__arg_adjust_refcount	(m4 *, m4_macro_args *, bool);
 extern void	m4__push_arg_quote	(m4 *, m4_obstack *, m4_macro_args *,
-					 unsigned int, const m4_string_pair *);
+					 size_t, const m4_string_pair *);
 
 #define VALUE_NEXT(T)		((T)->next)
 #define VALUE_MODULE(T)		((T)->module)
diff --git a/m4/macro.c b/m4/macro.c
index 29c8c1b..708be58 100644
--- a/m4/macro.c
+++ b/m4/macro.c
@@ -630,7 +630,7 @@ collect_arguments (m4 *context, const char *name, size_t len,
    the obstack EXPANSION.  Macro tracing is also handled here.  */
 void
 m4_macro_call (m4 *context, m4_symbol_value *value, m4_obstack *expansion,
-	       unsigned int argc, m4_macro_args *argv)
+	       size_t argc, m4_macro_args *argv)
 {
   if (m4_bad_argc (context, argc, argv->argv0,
 		   VALUE_MIN_ARGS (value), VALUE_MAX_ARGS (value),
@@ -889,8 +889,8 @@ trace_prepre (m4 *context, const char *name, size_t id, m4_symbol_value *value)
 static void
 trace_pre (m4 *context, size_t id, m4_macro_args *argv)
 {
-  unsigned int i;
-  unsigned int argc = m4_arg_argc (argv);
+  size_t i;
+  size_t argc = m4_arg_argc (argv);
 
   trace_header (context, id);
   trace_format (context, "%s", M4ARG (0));
@@ -1016,7 +1016,7 @@ arg_mark (m4_macro_args *argv)
    empty.  */
 static m4_symbol_value *
 make_argv_ref (m4_symbol_value *value, m4_obstack *obs, size_t level,
-	       m4_macro_args *argv, unsigned int index, bool flatten,
+	       m4_macro_args *argv, size_t index, bool flatten,
 	       const m4_string_pair *quotes)
 {
   m4__symbol_chain *chain;
@@ -1064,9 +1064,9 @@ make_argv_ref (m4_symbol_value *value, m4_obstack *obs, size_t level,
    must be non-zero.  *LEVEL is set to the obstack level that contains
    the symbol (which is not necessarily the level of ARGV).  */
 static m4_symbol_value *
-arg_symbol (m4_macro_args *argv, unsigned int index, size_t *level)
+arg_symbol (m4_macro_args *argv, size_t index, size_t *level)
 {
-  unsigned int i;
+  size_t i;
   m4_symbol_value *value;
 
   assert (index);
@@ -1105,7 +1105,7 @@ arg_symbol (m4_macro_args *argv, unsigned int index, size_t *level)
 /* Given ARGV, return the symbol value at the specified INDEX, which
    must be non-zero.  */
 m4_symbol_value *
-m4_arg_symbol (m4_macro_args *argv, unsigned int index)
+m4_arg_symbol (m4_macro_args *argv, size_t index)
 {
   size_t dummy;
   return arg_symbol (argv, index, &dummy);
@@ -1114,7 +1114,7 @@ m4_arg_symbol (m4_macro_args *argv, unsigned int index)
 /* Given ARGV, return true if argument INDEX is text.  Index 0 is
    always text, as are indices beyond argc.  */
 bool
-m4_is_arg_text (m4_macro_args *argv, unsigned int index)
+m4_is_arg_text (m4_macro_args *argv, size_t index)
 {
   m4_symbol_value *value;
   if (index == 0 || argv->argc <= index)
@@ -1129,7 +1129,7 @@ m4_is_arg_text (m4_macro_args *argv, unsigned int index)
 /* Given ARGV, return true if argument INDEX is a builtin function.
    Only non-zero indices less than argc can return true.  */
 bool
-m4_is_arg_func (m4_macro_args *argv, unsigned int index)
+m4_is_arg_func (m4_macro_args *argv, size_t index)
 {
   if (index == 0 || argv->argc <= index)
     return false;
@@ -1141,7 +1141,7 @@ m4_is_arg_func (m4_macro_args *argv, unsigned int index)
    argc return the empty string.  The result is always NUL-terminated,
    even if it includes embedded NUL characters.  */
 const char *
-m4_arg_text (m4 *context, m4_macro_args *argv, unsigned int index)
+m4_arg_text (m4 *context, m4_macro_args *argv, size_t index)
 {
   m4_symbol_value *value;
   m4__symbol_chain *chain;
@@ -1175,7 +1175,7 @@ m4_arg_text (m4 *context, m4_macro_args *argv, unsigned int index)
    !strcmp (m4_arg_text (context, argv, indexa),
 	    m4_arg_text (context, argv, indexb)).  */
 bool
-m4_arg_equal (m4_macro_args *argv, unsigned int indexa, unsigned int indexb)
+m4_arg_equal (m4_macro_args *argv, size_t indexa, size_t indexb)
 {
   m4_symbol_value *sa = m4_arg_symbol (argv, indexa);
   m4_symbol_value *sb = m4_arg_symbol (argv, indexb);
@@ -1265,7 +1265,7 @@ m4_arg_equal (m4_macro_args *argv, unsigned int indexa, unsigned int indexb)
    This gives the same result as comparing m4_arg_len against 0, but
    is often faster.  */
 bool
-m4_arg_empty (m4_macro_args *argv, unsigned int index)
+m4_arg_empty (m4_macro_args *argv, size_t index)
 {
   return (index ? m4_arg_symbol (argv, index) == &empty_symbol
 	  : !argv->argv0_len);
@@ -1274,7 +1274,7 @@ m4_arg_empty (m4_macro_args *argv, unsigned int index)
 /* Given ARGV, return the length of argument INDEX.  Abort if the
    argument is not text.  Indices beyond argc return 0.  */
 size_t
-m4_arg_len (m4_macro_args *argv, unsigned int index)
+m4_arg_len (m4_macro_args *argv, size_t index)
 {
   m4_symbol_value *value;
   m4__symbol_chain *chain;
@@ -1304,7 +1304,7 @@ m4_arg_len (m4_macro_args *argv, unsigned int index)
 /* Given ARGV, return the builtin function referenced by argument
    INDEX.  Abort if it is not a single builtin.  */
 m4_builtin_func *
-m4_arg_func (m4_macro_args *argv, unsigned int index)
+m4_arg_func (m4_macro_args *argv, size_t index)
 {
   return m4_get_symbol_value_func (m4_arg_symbol (argv, index));
 }
@@ -1317,11 +1317,11 @@ m4_arg_func (m4_macro_args *argv, unsigned int index)
    MODULE, print any details about originating modules.  QUOTES count
    against the truncation length, but not module names.  */
 bool
-m4_arg_print (m4_obstack *obs, m4_macro_args *argv, unsigned int index,
+m4_arg_print (m4_obstack *obs, m4_macro_args *argv, size_t index,
 	      const m4_string_pair *quotes, size_t *max_len, bool module)
 {
   size_t len = max_len ? *max_len : SIZE_MAX;
-  unsigned int i;
+  size_t i;
   bool comma = false;
 
   for (i = index; i < argv->argc; i++)
@@ -1358,7 +1358,7 @@ m4_make_argv_ref (m4 *context, m4_macro_args *argv, const char *argv0,
   m4_macro_args *new_argv;
   m4_symbol_value *value;
   m4_symbol_value *new_value;
-  unsigned int index = skip ? 2 : 1;
+  size_t index = skip ? 2 : 1;
   m4_obstack *obs = m4_arg_scratch (context);
 
   new_value = (m4_symbol_value *) obstack_alloc (obs, sizeof *value);
@@ -1394,8 +1394,7 @@ m4_make_argv_ref (m4 *context, m4_macro_args *argv, const char *argv0,
 /* Push argument INDEX from ARGV, which must be a text token, onto the
    expansion stack OBS for rescanning.  */
 void
-m4_push_arg (m4 *context, m4_obstack *obs, m4_macro_args *argv,
-	     unsigned int index)
+m4_push_arg (m4 *context, m4_obstack *obs, m4_macro_args *argv, size_t index)
 {
   m4_symbol_value value;
 
@@ -1416,7 +1415,7 @@ m4_push_arg (m4 *context, m4_obstack *obs, m4_macro_args *argv,
    reference was created.  */
 void
 m4__push_arg_quote (m4 *context, m4_obstack *obs, m4_macro_args *argv,
-		    unsigned int index, const m4_string_pair *quotes)
+		    size_t index, const m4_string_pair *quotes)
 {
   size_t level;
   m4_symbol_value *value = arg_symbol (argv, index, &level);
@@ -1442,7 +1441,7 @@ m4_push_args (m4 *context, m4_obstack *obs, m4_macro_args *argv, bool skip,
   m4_symbol_value tmp;
   m4_symbol_value *value;
   m4__symbol_chain *chain;
-  unsigned int i = skip ? 2 : 1;
+  size_t i = skip ? 2 : 1;
   const m4_string_pair *quotes = m4_get_syntax_quotes (M4SYNTAX);
   char *str = NULL;
   size_t len = obstack_object_size (obs);
@@ -1490,7 +1489,7 @@ m4_push_args (m4 *context, m4_obstack *obs, m4_macro_args *argv, bool skip,
 /* Given ARGV, return one greater than the number of arguments it
    describes.  */
 #undef m4_arg_argc
-unsigned int
+size_t
 m4_arg_argc (m4_macro_args *argv)
 {
   return argv->argc;
diff --git a/m4/utility.c b/m4/utility.c
index d95e44e..69349fe 100644
--- a/m4/utility.c
+++ b/m4/utility.c
@@ -40,8 +40,8 @@ static const char *skip_space (m4 *, const char *);
    Return true if the macro is guaranteed to expand to the empty
    string, false otherwise.  */
 bool
-m4_bad_argc (m4 *context, int argc, const char *caller, unsigned int min,
-	     unsigned int max, bool side_effect)
+m4_bad_argc (m4 *context, int argc, const char *caller, size_t min, size_t max,
+	     bool side_effect)
 {
   if (argc - 1 < min)
     {
@@ -99,13 +99,13 @@ m4_numeric_arg (m4 *context, const char *caller, const char *arg, int *valuep)
    index START, separated by SEP, and quoted by the current quotes, if
    QUOTED is true.  */
 void
-m4_dump_args (m4 *context, m4_obstack *obs, unsigned int start,
-	      m4_macro_args *argv, const char *sep, bool quoted)
+m4_dump_args (m4 *context, m4_obstack *obs, size_t start, m4_macro_args *argv,
+	      const char *sep, bool quoted)
 {
-  unsigned int i;
+  size_t i;
   size_t len = strlen (sep);
   bool need_sep = false;
-  unsigned int argc = m4_arg_argc (argv);
+  size_t argc = m4_arg_argc (argv);
 
   for (i = start; i < argc; i++)
     {
diff --git a/modules/evalparse.c b/modules/evalparse.c
index 39b0d41..890816d 100644
--- a/modules/evalparse.c
+++ b/modules/evalparse.c
@@ -1,6 +1,6 @@
 /* GNU m4 -- A simple macro processor
-   Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2001, 2006, 2007
-   Free Software Foundation, Inc.
+   Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2001, 2006, 2007,
+   2008 Free Software Foundation, Inc.
 
    This file is part of GNU M4.
 
@@ -885,8 +885,7 @@ simple_term (m4 *context, eval_token et, number *v1)
 
 /* Main entry point, called from "eval" and "mpeval" builtins.  */
 void
-m4_evaluate (m4 *context, m4_obstack *obs, unsigned int argc,
-             m4_macro_args *argv)
+m4_evaluate (m4 *context, m4_obstack *obs, size_t argc, m4_macro_args *argv)
 {
   const char *	me	= M4ARG (0);
   const char *	str	= M4ARG (1);
diff --git a/modules/gnu.c b/modules/gnu.c
index 841e660..1f6bf29 100644
--- a/modules/gnu.c
+++ b/modules/gnu.c
@@ -499,7 +499,7 @@ M4BUILTIN_HANDLER (changesyntax)
 
   if (m4_expand_ranges)
     {
-      unsigned int i;
+      size_t i;
       for (i = 1; i < argc; i++)
 	{
 	  const char *spec = M4ARG (i);
diff --git a/modules/m4.c b/modules/m4.c
index cd4c230..ccc847c 100644
--- a/modules/m4.c
+++ b/modules/m4.c
@@ -50,8 +50,7 @@
 extern void m4_set_sysval    (int value);
 extern void m4_sysval_flush  (m4 *context, bool report);
 extern void m4_dump_symbols  (m4 *context, m4_dump_symbol_data *data,
-			      unsigned int argc, m4_macro_args *argv,
-			      bool complain);
+			      size_t argc, m4_macro_args *argv, bool complain);
 extern const char *m4_expand_ranges (const char *s, m4_obstack *obs);
 extern void m4_make_temp     (m4 *context, m4_obstack *obs, const char *macro,
 			      const char *name, size_t len, bool dir);
@@ -175,7 +174,7 @@ M4BUILTIN_HANDLER (define)
 M4BUILTIN_HANDLER (undefine)
 {
   const char *me = M4ARG (0);
-  unsigned int i;
+  size_t i;
   for (i = 1; i < argc; i++)
     {
       const char *name = M4ARG (i);
@@ -203,7 +202,7 @@ M4BUILTIN_HANDLER (pushdef)
 M4BUILTIN_HANDLER (popdef)
 {
   const char *me = M4ARG (0);
-  unsigned int i;
+  size_t i;
   for (i = 1; i < argc; i++)
     {
       const char *name = M4ARG (i);
@@ -230,7 +229,7 @@ M4BUILTIN_HANDLER (ifdef)
 M4BUILTIN_HANDLER (ifelse)
 {
   const char *me = M4ARG (0);
-  unsigned int index;
+  size_t index;
 
   /* The valid ranges of argc for ifelse is discontinuous, we cannot
      rely on the regular mechanisms.  */
@@ -305,7 +304,7 @@ dump_symbol_CB (m4_symbol_table *ignored, const char *name, m4_symbol *symbol,
 /* If there are no arguments, build a sorted list of all defined
    symbols, otherwise, only the specified symbols.  */
 void
-m4_dump_symbols (m4 *context, m4_dump_symbol_data *data, unsigned int argc,
+m4_dump_symbols (m4 *context, m4_dump_symbol_data *data, size_t argc,
 		 m4_macro_args *argv, bool complain)
 {
   const char *me = M4ARG (0);
@@ -316,7 +315,7 @@ m4_dump_symbols (m4 *context, m4_dump_symbol_data *data, unsigned int argc,
     m4_symtab_apply (M4SYMTAB, false, dump_symbol_CB, data);
   else
     {
-      unsigned int i;
+      size_t i;
       m4_symbol *symbol;
 
       for (i = 1; i < argc; i++)
@@ -374,7 +373,7 @@ M4BUILTIN_HANDLER (dumpdef)
 M4BUILTIN_HANDLER (defn)
 {
   const char *me = M4ARG (0);
-  unsigned int i;
+  size_t i;
 
   for (i = 1; i < argc; i++)
     {
@@ -577,7 +576,7 @@ M4BUILTIN_HANDLER (divnum)
 
 M4BUILTIN_HANDLER (undivert)
 {
-  unsigned int i = 0;
+  size_t i = 0;
   const char *me = M4ARG (0);
 
   if (argc == 1)
@@ -861,7 +860,7 @@ M4BUILTIN_HANDLER (m4wrap)
 
 M4BUILTIN_HANDLER (traceon)
 {
-  unsigned int i;
+  size_t i;
 
   if (argc == 1)
     m4_set_debug_level_opt (context, (m4_get_debug_level_opt (context)
@@ -874,7 +873,7 @@ M4BUILTIN_HANDLER (traceon)
 /* Disable tracing of all specified macros, or all, if none is specified.  */
 M4BUILTIN_HANDLER (traceoff)
 {
-  unsigned int i;
+  size_t i;
 
   if (argc == 1)
     m4_set_debug_level_opt (context, (m4_get_debug_level_opt (context)
diff --git a/modules/m4.h b/modules/m4.h
index 81dfef4..e1c3f96 100644
--- a/modules/m4.h
+++ b/modules/m4.h
@@ -1,5 +1,5 @@
 /* GNU m4 -- A simple macro processor
-   Copyright (C) 2003, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006, 2007, 2008 Free Software Foundation, Inc.
 
    This file is part of GNU M4.
 
@@ -39,12 +39,12 @@ typedef struct
 typedef void m4_sysval_flush_func (m4 *context, bool report);
 typedef void m4_set_sysval_func (int value);
 typedef void m4_dump_symbols_func (m4 *context, m4_dump_symbol_data *data,
-				   unsigned int argc, m4_macro_args *argv,
+				   size_t argc, m4_macro_args *argv,
 				   bool complain);
 typedef const char *m4_expand_ranges_func (const char *s, m4_obstack *obs);
 typedef void m4_make_temp_func (m4 *context, m4_obstack *obs,
 				const char *macro, const char *name,
-                                size_t len, bool dir);
+				size_t len, bool dir);
 
 END_C_DECLS
 
diff --git a/modules/perl.c b/modules/perl.c
index f129af0..46cf2cd 100644
--- a/modules/perl.c
+++ b/modules/perl.c
@@ -1,5 +1,6 @@
 /* GNU m4 -- A simple macro processor
-   Copyright (C) 1999, 2000, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000, 2006, 2007, 2008 Free Software
+   Foundation, Inc.
 
    This file is part of GNU M4.
 
@@ -114,7 +115,7 @@ M4FINISH_HANDLER (perl)
 M4BUILTIN_HANDLER (perleval)
 {
   SV *val;
-  unsigned int i;
+  size_t i;
 
   for (i = 1; i < argc; i++)
     {
-- 
1.5.3.8
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.