summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Blake <ebb9@byu.net>2008-02-23 09:58:03 -0700
committerEric Blake <ebb9@byu.net>2008-02-23 09:58:03 -0700
commit9d400bc11d96c313d041e73b8f7b9a2d069d1ae5 (patch)
tree41bbf36cbf50bf93103f9e2c9794f5917317a079
parentc91769acf89e163c06e86be0f17022572f33bbab (diff)
downloadm4-9d400bc11d96c313d041e73b8f7b9a2d069d1ae5.tar.gz
Use size_t consistently for string length truncation.
* src/m4.h (max_debug_argument_length): Change type to size_t. (shipout_string_trunc, arg_print): Change parameter type. * src/debug.c (trace_format, trace_pre): Adjust all callers. * src/input.c (input_print): Likewise. * src/m4.c (max_debug_argument_length, main): Likewise. * src/macro.c (arg_print): Likewise. * src/output.c (shipout_string_trunc): Likewise. Reported by Ralf Wildenhues. Signed-off-by: Eric Blake <ebb9@byu.net>
-rw-r--r--ChangeLog10
-rw-r--r--src/debug.c6
-rw-r--r--src/input.c2
-rw-r--r--src/m4.c9
-rw-r--r--src/m4.h6
-rw-r--r--src/macro.c4
-rw-r--r--src/output.c4
7 files changed, 26 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 22110522..f867f1fe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2008-02-23 Eric Blake <ebb9@byu.net>
+ Use size_t consistently for string length truncation.
+ * src/m4.h (max_debug_argument_length): Change type to size_t.
+ (shipout_string_trunc, arg_print): Change parameter type.
+ * src/debug.c (trace_format, trace_pre): Adjust all callers.
+ * src/input.c (input_print): Likewise.
+ * src/m4.c (max_debug_argument_length, main): Likewise.
+ * src/macro.c (arg_print): Likewise.
+ * src/output.c (shipout_string_trunc): Likewise.
+ Reported by Ralf Wildenhues.
+
s/obstack_print/shipout_string_trunc/.
* src/m4.h (obstack_print): Rename...
(shipout_string_trunc): ...to this, to leave obstack_ prefix for
diff --git a/src/debug.c b/src/debug.c
index 1c0c99bb..46e1306f 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -248,7 +248,7 @@ trace_format (const char *fmt, ...)
char ch;
int d;
const char *s;
- int maxlen;
+ size_t maxlen;
va_start (args, fmt);
@@ -260,7 +260,7 @@ trace_format (const char *fmt, ...)
if (ch == '\0')
break;
- maxlen = INT_MAX;
+ maxlen = SIZE_MAX;
switch (*fmt++)
{
case 'B':
@@ -364,7 +364,7 @@ trace_pre (const char *name, int id, macro_arguments *argv)
if (arg_argc (argv) > 1 && (debug_level & DEBUG_TRACE_ARGS))
{
- int len = max_debug_argument_length;
+ size_t len = max_debug_argument_length;
trace_format ("(");
arg_print (&trace, argv, 1,
(debug_level & DEBUG_TRACE_QUOTE) ? &curr_quote : NULL,
diff --git a/src/input.c b/src/input.c
index e2d332a5..9d8b8f39 100644
--- a/src/input.c
+++ b/src/input.c
@@ -680,7 +680,7 @@ pop_wrapup (void)
void
input_print (struct obstack *obs, const input_block *input)
{
- int maxlen = max_debug_argument_length;
+ size_t maxlen = max_debug_argument_length;
token_chain *chain;
assert (input);
diff --git a/src/m4.c b/src/m4.c
index 0ace6dcd..fe8c5489 100644
--- a/src/m4.c
+++ b/src/m4.c
@@ -47,7 +47,7 @@ int no_gnu_extensions = 0;
int prefix_all_builtins = 0;
/* Max length of arguments in trace output (-lsize). */
-int max_debug_argument_length = INT_MAX;
+size_t max_debug_argument_length = SIZE_MAX;
/* Suppress warnings about missing arguments. */
int suppress_warnings = 0;
@@ -572,9 +572,10 @@ main (int argc, char *const *argv, char *const *envp)
break;
case 'l':
- max_debug_argument_length = atoi (optarg);
- if (max_debug_argument_length <= 0)
- max_debug_argument_length = INT_MAX;
+ {
+ int tmp = atoi (optarg);
+ max_debug_argument_length = tmp <= 0 ? SIZE_MAX : (size_t) tmp;
+ }
break;
case 'o':
diff --git a/src/m4.h b/src/m4.h
index 7694ba0a..7e35accd 100644
--- a/src/m4.h
+++ b/src/m4.h
@@ -129,7 +129,7 @@ extern int debug_level; /* -d */
extern size_t hash_table_size; /* -H */
extern int no_gnu_extensions; /* -G */
extern int prefix_all_builtins; /* -P */
-extern int max_debug_argument_length; /* -l */
+extern size_t max_debug_argument_length;/* -l */
extern int suppress_warnings; /* -Q */
extern int warning_status; /* -E */
extern int nesting_limit; /* -L */
@@ -424,7 +424,7 @@ void output_init (void);
void output_exit (void);
void output_text (const char *, int);
void divert_text (struct obstack *, const char *, int, int);
-bool shipout_string_trunc (struct obstack *, const char *, size_t, int *);
+bool shipout_string_trunc (struct obstack *, const char *, size_t, size_t *);
void make_diversion (int);
void insert_diversion (int);
void insert_file (FILE *);
@@ -500,7 +500,7 @@ size_t arg_len (macro_arguments *, unsigned int);
builtin_func *arg_func (macro_arguments *, unsigned int);
struct obstack *arg_scratch (void);
bool arg_print (struct obstack *, macro_arguments *, unsigned int,
- const string_pair *, bool, const char *, int *, bool);
+ const string_pair *, bool, const char *, size_t *, bool);
macro_arguments *make_argv_ref (macro_arguments *, const char *, size_t,
bool, bool);
void push_arg (struct obstack *, macro_arguments *, unsigned int);
diff --git a/src/macro.c b/src/macro.c
index 366584ac..0846f8dd 100644
--- a/src/macro.c
+++ b/src/macro.c
@@ -1194,9 +1194,9 @@ arg_scratch (void)
bool
arg_print (struct obstack *obs, macro_arguments *argv, unsigned int index,
const string_pair *quotes, bool flatten, const char *sep,
- int *max_len, bool quote_each)
+ size_t *max_len, bool quote_each)
{
- int len = max_len ? *max_len : INT_MAX;
+ size_t len = max_len ? *max_len : INT_MAX;
unsigned int i;
token_data *token;
token_chain *chain;
diff --git a/src/output.c b/src/output.c
index 56ac1f42..7b2d6de3 100644
--- a/src/output.c
+++ b/src/output.c
@@ -579,9 +579,9 @@ divert_text (struct obstack *obs, const char *text, int length, int line)
appropriate. */
bool
shipout_string_trunc (struct obstack *obs, const char *str, size_t len,
- int *max_len)
+ size_t *max_len)
{
- int max = max_len ? *max_len : INT_MAX;
+ size_t max = max_len ? *max_len : INT_MAX;
if (len == SIZE_MAX)
len = strlen (str);