summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2007-07-25 22:42:36 +0000
committerBruno Haible <bruno@clisp.org>2007-07-25 22:42:36 +0000
commitc03635e1ae69ad9fc848ed85ed5dc8e0c7c9b68c (patch)
tree6fbee3bf48644eae71ad9474c94a6003779fa9cc /lib
parentdc78353f17148e2fa0452e13ab70c23c69b8b529 (diff)
downloadgnulib-c03635e1ae69ad9fc848ed85ed5dc8e0c7c9b68c.tar.gz
2007-07-25 Jim Meyering <jim@meyering.net>
Bruno Haible <bruno@clisp.org> * lib/xstrtol.h (_STRTOL_ERROR): Change third argument from a localized noun to an option name. (STRTOL_FATAL_ERROR, STRTOL_FAIL_WARN): Likewise. * lib/human.h (human_options): Insert a third argument. * lib/human.h (human_options): Likewise. Pass it to STRTOL_FATAL_ERROR.
Diffstat (limited to 'lib')
-rw-r--r--lib/human.c7
-rw-r--r--lib/human.h4
-rw-r--r--lib/xstrtol.h31
3 files changed, 25 insertions, 17 deletions
diff --git a/lib/human.c b/lib/human.c
index ecf4c97ce5..5b31d06c07 100644
--- a/lib/human.c
+++ b/lib/human.c
@@ -1,7 +1,7 @@
/* human.c -- print human readable file size
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- 2005, 2006 Free Software Foundation, Inc.
+ 2005, 2006, 2007 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -464,7 +464,8 @@ humblock (char const *spec, uintmax_t *block_size, int *options)
}
int
-human_options (char const *spec, bool report_errors, uintmax_t *block_size)
+human_options (char const *spec, bool report_errors, char const *option,
+ uintmax_t *block_size)
{
int opts;
strtol_error e = humblock (spec, block_size, &opts);
@@ -474,6 +475,6 @@ human_options (char const *spec, bool report_errors, uintmax_t *block_size)
e = LONGINT_INVALID;
}
if (e != LONGINT_OK && report_errors)
- STRTOL_FATAL_ERROR (spec, _("block size"), e);
+ STRTOL_FATAL_ERROR (spec, option, e);
return opts;
}
diff --git a/lib/human.h b/lib/human.h
index 44b8b36d57..cf0ba4f81a 100644
--- a/lib/human.h
+++ b/lib/human.h
@@ -1,7 +1,7 @@
/* human.h -- print human readable file size
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- 2005, 2006 Free Software Foundation, Inc.
+ 2005, 2006, 2007 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -78,6 +78,6 @@ enum
char *human_readable (uintmax_t, char *, int, uintmax_t, uintmax_t);
-int human_options (char const *, bool, uintmax_t *);
+int human_options (char const *, bool, char const *, uintmax_t *);
#endif /* HUMAN_H_ */
diff --git a/lib/xstrtol.h b/lib/xstrtol.h
index 475728aa44..2a5eb16b64 100644
--- a/lib/xstrtol.h
+++ b/lib/xstrtol.h
@@ -1,6 +1,6 @@
/* A more useful interface to strtol.
- Copyright (C) 1995, 1996, 1998, 1999, 2001, 2002, 2003, 2004, 2006
+ Copyright (C) 1995, 1996, 1998, 1999, 2001-2004, 2006-2007
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
@@ -50,7 +50,14 @@ _DECLARE_XSTRTOL (xstrtoul, unsigned long int)
_DECLARE_XSTRTOL (xstrtoimax, intmax_t)
_DECLARE_XSTRTOL (xstrtoumax, uintmax_t)
-# define _STRTOL_ERROR(Exit_code, Str, Argument_type_string, Err) \
+/* Signal an error for an out-of-range integer argument, through the error()
+ function.
+ EXIT_CODE is the exit code (0 for a non-fatal error).
+ STR is the value of the given argument value.
+ OPTION is the option that takes the argument (usually starting with one
+ or two minus signs).
+ ERR is the error code returned by one of the xstrto* functions. */
+# define _STRTOL_ERROR(Exit_code, Str, Option, Err) \
do \
{ \
switch ((Err)) \
@@ -59,29 +66,29 @@ _DECLARE_XSTRTOL (xstrtoumax, uintmax_t)
abort (); \
\
case LONGINT_INVALID: \
- error ((Exit_code), 0, gettext ("invalid %s `%s'"), \
- (Argument_type_string), (Str)); \
+ error ((Exit_code), 0, gettext ("invalid %s argument `%s'"), \
+ (Option), (Str)); \
break; \
\
case LONGINT_INVALID_SUFFIX_CHAR: \
case LONGINT_INVALID_SUFFIX_CHAR | LONGINT_OVERFLOW: \
error ((Exit_code), 0, \
- gettext ("invalid character following %s in `%s'"), \
- (Argument_type_string), (Str)); \
+ gettext ("invalid character following %s argument in `%s'"), \
+ (Option), (Str)); \
break; \
\
case LONGINT_OVERFLOW: \
- error ((Exit_code), 0, gettext ("%s `%s' too large"), \
- (Argument_type_string), (Str)); \
+ error ((Exit_code), 0, gettext ("%s argument `%s' too large"), \
+ (Option), (Str)); \
break; \
} \
} \
while (0)
-# define STRTOL_FATAL_ERROR(Str, Argument_type_string, Err) \
- _STRTOL_ERROR (exit_failure, Str, Argument_type_string, Err)
+# define STRTOL_FATAL_ERROR(Str, Option, Err) \
+ _STRTOL_ERROR (exit_failure, Str, Option, Err)
-# define STRTOL_FAIL_WARN(Str, Argument_type_string, Err) \
- _STRTOL_ERROR (0, Str, Argument_type_string, Err)
+# define STRTOL_FAIL_WARN(Str, Option, Err) \
+ _STRTOL_ERROR (0, Str, Option, Err)
#endif /* not XSTRTOL_H_ */