diff options
author | Bruno Haible <bruno@clisp.org> | 2007-07-25 22:42:36 +0000 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2007-07-25 22:42:36 +0000 |
commit | c03635e1ae69ad9fc848ed85ed5dc8e0c7c9b68c (patch) | |
tree | 6fbee3bf48644eae71ad9474c94a6003779fa9cc /lib/xstrtol.h | |
parent | dc78353f17148e2fa0452e13ab70c23c69b8b529 (diff) | |
download | gnulib-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/xstrtol.h')
-rw-r--r-- | lib/xstrtol.h | 31 |
1 files changed, 19 insertions, 12 deletions
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_ */ |