lib/xstrtol.c


Log

Author Commit Date CI Message
Eric Blake c7110f3b 2007-08-08T12:45:54 Move xstrtol messages into gnulib domain, when --pobase is used. * lib/xstrtol.h (_STRTOL_ERROR): Move messages out of macro... * lib/xstrtol-error.c (xstrtol_error): ...into new file. * modules/xstrtol (Files): Distribute new file. * m4/xstrtol.m4 (gl_XSTRTOL): Build new file. * lib/xstrtol.c (TESTING_XSTRTO): Move tests... * tests/test-xstrtol.c: ...into new file. * tests/test-xstrtoul.c: Also test xstrtoul. * tests/test-xstrtoimax.c: Also test xstrtoimax. * tests/test-xstrtoumax.c: Also test xstrtoumax. * tests/test-xstrtol.sh: Drive the tests. * tests/test-xstrtoimax.sh: Likewise. * tests/test-xstrtoumax.sh: Likewise. * modules/xstrtol-tests: New module. * modules/xstrtoimax-tests: Likewise. * modules/xstrtoumax-tests: Likewise.
Paul Eggert 0253ee27 2007-08-06T16:44:24 * NEWS: Describe interface changes to human, xstrtol. * lib/human.h: Include <xstrtol.h>. (human_options): Return enum strtol_error, not int. Remove bool arg; take int * instead. * lib/human.c: Don't include "gettext.h". (_): Remove; no longer used. Don't include <xstrtol.h>, since human.h does it. (human_options): Adjust to abovementioned interface changes. Do not report error to stderr; that's now the caller's responsibility. * lib/xstrtol.c (main) [defined TESTING_XSTRTO]: Adjust to interface change. * lib/xstrtol.h (_STRTOL_ERROR): Take Option, Arg rather than Str, Argument_type_string. All uses changed. Put " argument" in diagnostics to make them clearer. Change wording of suffix message for clarity. (STRTOL_FATAL_ERROR): Take Option, Arg rather than Str, Argument_type_string. (STRTOL_FATAL_WARN): Remove; no longer used. * modules/human (Depends-on): Remove gettext-h.
Paul Eggert 74fcb057 2006-10-08T07:24:56 Don't include <config.h> twice; this doesn't work in some cases, e.g., when config.h has "#define intmax_t long long int" and we include <config.h>, <inttypes.h>, <config.h> in that order. * fprintftime.c: Don't include config.h or fprintftime.h. * fts-cycle.c: Don't include config.h. * strftime.c: Include fprintftime.h if FPRINTFTIME is defined. * xstrtoimax.c: Remove copyright notice since it's short tnow. Don't include config.h or xstrtol.h. Define STRTOL_T_MINIMUM and STRTOL_T_MAXIMUM unconditionally, since we now assume gnulib inttypes.h. * xstrtoumax.c: Likewise. * xstrtol.c: Include config.h and xstrtol.h after defining __strtol and the like, so that this module is more like its siblings. (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM) [! defined STRTOL_T_MINIMUM]: Remove; no longer needed now that we assume gnulib inttypes.h. 2006-10-07 Bruno Haible <bruno@clisp.org>
Paul Eggert 0632e115 2006-09-13T22:38:14 * _fpending.c: Include <config.h> unconditionally, since we no longer worry about uses that don't define HAVE_CONFIG_H. * acl.c, alloca.c, argmatch.c, atexit.c, backupfile.c: * basename.c, c-stack.c, c-strtod.c, calloc.c, canon-host.c: * canonicalize.c, chdir-long.c, chdir-safer.c, chown.c: * cloexec.c, close-stream.c, closeout.c, creat-safer.c: * cycle-check.c, diacrit.c, dirchownmod.c, dirfd.c, dirname.c: * dup-safer.c, dup2.c, error.c, euidaccess.c, exclude.c: * exitfail.c, fchmodat.c, fchown-stub.c, fd-safer.c: * file-type.c, fileblocks.c, filemode.c, filenamecat.c: * fnmatch.c, fopen-safer.c, fprintftime.c, free.c, fsusage.c: * ftruncate.c, fts-cycle.c, fts.c, full-write.c, gai_strerror.c: * getcwd.c, getdate.y, getdomainname.c, getgroups.c: * gethostname.c, gethrxtime.c, getloadavg.c, getlogin_r.c: * getndelim2.c, getnline.c, getopt.c, getopt1.c, getpass.c: * gettime.c, gettimeofday.c, getugroups.c, getusershell.c: * glob.c, group-member.c, hard-locale.c, hash-pjw.c, hash.c: * human.c, idcache.c, inet_ntop.c, inet_pton.c, inttostr.c: * isdir.c, lchown.c, linebuffer.c, long-options.c, lstat.c: * malloc.c, md5.c, memcasecmp.c, memchr.c, memcmp.c, memcoll.c: * memcpy.c, memmove.c, memrchr.c, mkancesdirs.c, mkdir-p.c: * mkdir.c, mkdirat.c, mkstemp-safer.c, mkstemp.c, modechange.c: * mountlist.c, nanosleep.c, obstack.c, open-safer.c: * openat-die.c, openat.c, pagealign_alloc.c, physmem.c: * pipe-safer.c, posixtm.c, posixver.c, putenv.c, quote.c: * quotearg.c, raise.c, readtokens.c, readtokens0.c, readutmp.c: * realloc.c, regex.c, rename.c, rmdir.c, rpmatch.c, safe-read.c: * same.c, save-cwd.c, savedir.c, setenv.c, settime.c, sha1.c: * sig2str.c, snprintf.c, strdup.c, strerror.c, strftime.c: * stripslash.c, strndup.c, strnlen.c, strpbrk.c, strtod.c: * strtoimax.c, strtol.c, strverscmp.c, tempname.c, time_r.c: * timegm.c, tmpfile-safer.c, unlinkdir.c, userspec.c, utime.c: * utimecmp.c, utimens.c, version-etc-fsf.c, version-etc.c: * xalloc-die.c, xgetcwd.c, xgethostname.c, xmalloc.c: * xmemcoll.c, xnanosleep.c, xreadlink.c, xstrtod.c: * xstrtoimax.c, xstrtol.c, xstrtoumax.c, yesno.c: Likewise.
Paul Eggert 4fde4952 2006-07-05T23:35:19 * lib/memcasecmp.c: Include <limits.h>. (memcasecmp): Don't assume UCHAR_MAX <= INT_MAX. * lib/strtod.c (strtod): Don't assume isspace works on negative chars. Don't assume isdigit succeeds only on '0' through '9'. * lib/exclude.c (IN_CTYPE_DOMAIN, is_space): Remove; no longer needed. All uses of is_space replaced by isspace. * lib/fnmatch.c (ISASCII): Remove; no longer needed. All uses removed. (ISPRINT, ISDIGIT, ISALNUM, ISALPHA, ISCNTRL, ISLOWER, ISPUNCT): (ISSPACE, ISUPPER, ISXDIGIT): Remove; no longer needed. All uses replaced by isprint etc. * lib/getdate.y (IN_CTYPE_DOMAIN, ISSPACE, ISALPHA, ISLOWER): Likewise. * lib/getusershell.c (IN_CTYPE_DOMAIN, ISSPACE): Likewise. * lib/memcasecmp.c (IN_CTYPE_DOMAIN, ISLOWER, TOUPPER): Likewise. * lib/strtod.c (IN_CTYPE_DOMAIN, ISSPACE, ISDIGIT, TOLOWER): Likewise. * lib/strtol.c (IN_CTYPE_DOMAIN): Likewise. * lib/xstrtol.c (IN_CTYPE_DOMAIN, ISSPACE): Likewise. * m4/xstrtol.m4 (gl_PREREQ_XSTRTOL): Use AC_CHECK_DECLS_ONCE rather than AC_CHECK_DECLS for strtoimax and strtoumax. * m4/getusershell.m4 (gl_PREREQ_GETUSERSHELL): Remove; no longer needed. All uses removed. * m4/strtol.m4 (gl_PREREQ_STRTOL): Likewise. * m4/strtoul.m4 (gl_PREREQ_STRTOUL): Likewise. * m4/exclude.m4 (gl_EXCLUDE): Don't check for isascii; no longer needed. * m4/getdate.m4 (gl_GETDATE): Likewise. * m4/getusershell.m4 (gl_PREREQ_GETUSERSHELL): Likewise. * m4/memcasecmp.m4 (gl_MEMCASECMP): Likewise. * m4/strtod.m4 (gl_FUNC_STRTOD): Likewise. * m4/strtol.m4 (gl_PREREQ_STRTOL): Likewise. * m4/strtoul.m4 (gl_PREREQ_STRTOUL): Likewise. * m4/xstrtol.m4 (gl_PREREQ_XSTRTOL): Likewise. * m4/exclude.m4 (gl_EXCLUDE): Don't require AC_C_INLINE; no longer needed. * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Don't require AC_HEADER_STDC; no longer needed. * m4/exclude.m4 (gl_EXCLUDE): Likewise. * m4/getdate.m4 (gl_GETDATE): Likewise. * m4/getusershell.m4 (gl_PREREQ_GETUSERSHELL): Likewise. * m4/memcasecmp.m4 (gl_MEMCASECMP): Likewise. * m4/strtod.m4 (gl_FUNC_STRTOD): Likewise. * m4/strtol.m4 (gl_PREREQ_STRTOL): Likewise. * m4/xstrtol.m4 (gl_PREREQ_XSTRTOL): Likewise.
Paul Eggert 222b0486 2005-09-19T17:28:14 Use a consistent style for including <config.h>. * __fpending.c, acl.c, argmatch.c, argp-help.c, argp-parse.c, argp-pvh.c, backupfile.c, basename.c, c-stack.c, calloc.c, check-version.c, cloexec.c, closeout.c, copy-file.c, creat-safer.c, cycle-check.c, dirfd.c, dirname.c, dup-safer.c, dup2.c, euidaccess.c, exclude.c, exitfail.c, fatal-signal.c, fd-safer.c, file-type.c, fileblocks.c, filemode.c, filenamecat.c, findprog.c, fnmatch.c, fopen-safer.c, free.c, fsusage.c, ftruncate.c, full-write.c, fwriteerror.c, getaddrinfo.c, getcwd.c, getdelim.c, getline.c, getlogin_r.c, getndelim2.c, getnline.c, getopt1.c, getpass.c, group-member.c, hard-locale.c, hash-pjw.c, hash.c, human.c, idcache.c, inet_ntop.c, isdir.c, long-options.c, malloc.c, memcasecmp.c, memcmp.c, memcoll.c, memcpy.c, memmove.c, mkdir-p.c, modechange.c, mountlist.c, open-safer.c, physmem.c, pipe-safer.c, pipe.c, poll.c, posixver.c, progname.c, progreloc.c, putenv.c, quote.c, quotearg.c, readline.c, readlink.c, realloc.c, regex.c, rename.c, rmdir.c, rpmatch.c, safe-read.c, same.c, save-cwd.c, savedir.c, sig2str.c, strcspn.c, strerror.c, stripslash.c, strncasecmp.c, strndup.c, strnlen.c, strnlen1.c, strsep.c, strstr.c, strtod.c, strtoimax.c, strtol.c, strverscmp.c, tempname.c, time_r.c, userspec.c, utimecmp.c, version-etc-fsf.c, version-etc.c, wait-process.c, xalloc-die.c, xgetcwd.c, xmalloc.c, xmemcoll.c, xnanosleep.c, xreadlink.c, xsetenv.c, xstrndup.c, xstrtoimax.c, xstrtol.c, xstrtoumax.c, yesno.c: Standardize inclusion of config.h. * __fpending.h, dirfd.h, getdate.h, human.h, inttostr.h: Removed inclusion of config.h from header files. * inttostr.c: Adjusted in-tree users. * timespec.h: Remove superfluous warning to include config.h. * atexit.c, chdir-long.c chown.c, fchown-stub.c, getgroups.c, gettimeofday.c, lchown.c, lstat.c, mkdir.c, mkstemp.c, nanosleep.c, openat.c, raise.c, readtokens0.c, readutmp.c, unlinkdir.c: Guard inclusion of config.h with HAVE_CONFIG_H.
Paul Eggert 267a39ba 2005-05-14T06:03:57 *** empty log message ***
Paul Eggert eef56b54 2005-03-09T19:11:23 Factor int-properties macros into a single file, except for glibc-related files. * lib/intprops.h: New file. * lib/getloadavg.c: Include it instead of limits.h. (INT_STRLEN_BOUND): Remove. * lib/human.c: Include intprops.h. (group_number): Use INT_STRLEN_BOUND instead of rolling it ourself. * lib/human.h (LONGEST_HUMAN_READABLE): Use 146/485 rather than 302/1000. * lib/inttostr.h: Include intprops.h instead of limits.h. (INT_STRLEN_BOUND, INT_BUFSIZE_BOUND): Remove. * lib/mktime.c (TYPE_IS_INTEGER, TYPE_TWOS_COMPLEMENT): New macros, for consistency with intprops.h. (time_t_is_integer, twos_complement_arithmetic): Use them. * lib/sig2str.h: Include <signal.h>, intprops.h. (INT_STRLEN_BOUND): Remove. * lib/strftime.c (TYPE_SIGNED): Remove. (INT_STRLEN_BOUND): Switch to same implementation as intprops.h. * lib/strtol.c: Adjust comments to match intprops.h. * lib/userspec.c: Include intprops.h. (TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Remove. * lib/utimecmp.c, lib/xnanosleep.c, lib/xstrtol.c: Likewise. * lib/utimecmp.c (utimecmp): Use TYPE_IS_INTEGER, TYPE_TWOS_COMPLEMENT instead of rolling our own expressions. * lib/xstrtol.c: Include xstrtol.h first, to test interface. * modules/getloadavg (Files): Add lib/intprops.h. * modules/human (Files): Likewise. * modules/inttostr (Files): Likewise. * modules/sig2str (Files): Likewise. * modules/userspec (Files): Likewise. * modules/utimecmp (Files): Likewise. * modules/xnanosleep (Files): Likewise. * modules/xstrtol (Files): Likewise.
Paul Eggert a62be9f4 2004-08-07T00:09:38 Merge from coreutils.
Paul Eggert 4ef9d1e8 2003-11-13T05:17:20 xstrtol.c (__xstrtol): Remove "break" immediately after "return", to pacify some unknown compiler. Problem reported by Joerg Schilling.
Paul Eggert 790855e1 2003-10-14T20:08:25 Handle invalid suffixes and overflow independently, so that callers can treat them independently as needed. Fix some bugs in suffix handling.
Paul Eggert fa9635f2 2003-09-12T18:24:51 Remove K&R cruft.
Paul Eggert 552a680f 2003-05-29T07:21:59 in lib: * addext.c, backupfile.c, fsusage.c, human.c, pathmax.h, rpmatch.c, userspec.c, xreadlink.c, xstrtol.c: Include <limits.h> without checking for HAVE_LIMITS_H. * backupfile.c, fsusage.c, hash.c, human.c, safe-read.c, userspec.c, xstrtol.c (CHAR_BIT) : Don't define, since <limits.h> is guaranteed to do that. * fatal.c: Include <stdarg.h> without checking for __STDC__. * exclude.c: Include <stdbool.h> unconditionally. * tempname.c: Include <stddef.h> unconditionally. * hash.c: Include <limits.h>, since we no longer define CHAR_BIT. * modechange.c, rpmatch.c (NULL): Don't define, since <stddef.h> does that. * quote.c: Dont include <stddef.h> or <sys/types.h>; not needed. * safe-read.c (INT_MAX): Don't define, since <limits.h> does that. * safe-read.c (TYPE_MINIMUM, TYPE_MAXIMUM): Remove; no longer needed. * xstrtol.c: Likewise. * safe-read.c: Remove TYPE_SIGNED; no longer needed. * savedir.c: Include <stddef.h> instead of defining NULL. in m4: * backupfile.m4 (gl_BACKUPFILE): Don't check for limits.h. * fsusage.m4 (gl_PREREQ_FSUSAGE_EXTRA): Likewise. * human.m4 (gl_HUMAN): Likewise. * pathmax.m4 (gl_PATHMAX): Likewise. * rpmatch.m4 (gl_FUNC_RPMATCH): Likewise. * userspec.m4 (gl_USERSPEC): Likewise. * xreadlink.m4 (gl_XREADLINK): Likewise. * m4/xstrtol.m4 (gl_PREREQ_XSTRTOL): Likewise. * quote.m4 (gl_QUOTE): Don't check for stddef.h.
Jim Meyering fe13248e 2001-12-19T10:41:27 (__xstrtol): If there is no number but there is a valid suffix, assume 1. "MB" now means decimal, "MiB" binary. Accept 'K' as well as 'k'.
Jim Meyering 0f56340c 2001-09-28T19:34:31 (strtol): Do not declare if HAVE_DECL_STRTOL. (strtoul): Do not declare if HAVE_DECL_STRTOUL. (strtoimax, strtoumax): Do not declare if already defined as a macro.
Jim Meyering 94e77b06 2001-09-20T14:46:55 (strtoimax): Guard declaration with `#if !HAVE_DECL_STRTOIMAX', rather than just `#ifndef strtoimax'. The latter fails because some systems (at least rs6000-ibm-aix4.3.3.0) have their own, conflicting declaration of strtoimax in sys/inttypes.h. (strtoumax): Likewise, for completeness (it wasn't necessary).
Jim Meyering 2fb2cf55 2001-08-31T08:17:45 (strtoimax): New decl.
Jim Meyering 74ca0b1c 2000-12-19T08:35:20 (__xstrtol): Add undocumented suffixes 'g' and 't' for compatibility with Solaris 8 sort.
Jim Meyering d0a51a71 2000-01-07T07:03:01 tweak copyright line
Jim Meyering f60f9281 1999-07-04T10:40:04 [!defined strtoumax]: Declare strtoumax.
Jim Meyering e911cfd7 1999-07-04T08:34:31 (__strtol): Remove decl; it doesn't work if __strtol expands to a macro, which occurs in HP-UX 10.20 with strtoumax. (strtol, strtoul): New decls (for pre-ANSI hosts), to replace the above decl.
Jim Meyering c52f4d0c 1999-04-18T23:15:34 (__strtol, __strtol_t, __xstrtol): New macros to specify the underlying function, its returned type, and our function. Default to values suitable for xstrtol. Include <ctype.h>, since we use its macros. (ULONG_MAX, LONG_MAX, ISBLANK): Remove: no longer needed. (ISSPACE): New macro. (bkm_scale, bkm_scale_by_power, __xstrtol, main): __unsigned long int -> __strtol_t. (__xstrtol): Depend on whether __strtol_t is an unsigned type, not on whether STRING_TO_UNSIGNED is defined. Skip isspace chars, not isblank chars, to match strtol. When returning LONGINT_INVALID_SUFFIX_CHAR, store the value that we computed into *val.
Jim Meyering 3bf75404 1998-09-26T19:11:23 (__xstrtol) [STRING_TO_UNSIGNED]: Return LONGINT_INVALID for strings that begin with `-'.
Jim Meyering 0ba789ce 1998-07-29T04:00:36 Remove duplicate include of <stdio.h>.
Jim Meyering 6ce9913b 1998-07-22T16:57:15 Include <stdio.h> if NDEBUG is not defined; needed on SunOS 4. From Paul Eggert.
Jim Meyering f4f0b655 1998-07-04T17:15:08 Include stdio.h. Required on some systems when using assert. From Kaveh Ghazi.
Jim Meyering 6fdecf95 1998-07-01T12:44:22 Don't define NDEBUG, now that it's done via configure's --disable-assert option.
Jim Meyering 42b5becc 1998-06-29T20:29:28 protoize
Jim Meyering 70f6f1ad 1998-06-29T15:24:43 * lib/xstrtol.c (bkm_scale): Don't assume that you can convert unsigned long to double without losing information. (bkm_scale_by_power): New function. * lib/xstrtol.c (__xstrtol), src/dd.c (parse_integer): Add support for SI-like suffixes like "GB" and "TD". * src/dd.c (usage): Describe it.
Jim Meyering fa39892b 1998-03-31T13:14:22 Merge with the version from textutils.
Jim Meyering 5472ac42 1998-02-24T23:33:41 (TYPE_SIGNED): Define. (TYPE_MAXIMUM): Define. (ULONG_MAX): Use TYPE_MAXIMUM. (LONG_MAX): Use TYPE_MAXIMUM.
Jim Meyering 555837e8 1997-01-25T06:13:46 (__xstrtol): Change interpretation of VALID_SUFFIXES == NULL vs VALID_SUFFIXES == "". Use the former when any suffix is valid, the later when no suffix is allowed.
Jim Meyering f820ac46 1996-10-29T13:56:39 .
Jim Meyering 1b727760 1996-10-17T02:46:33 .
Jim Meyering f318d7fc 1996-10-17T02:45:32 libitize
Jim Meyering 06560e9c 1996-10-13T17:58:50 (__xstrtol): Return an error for invalid suffix. Before, e.g., `split -b 1M' would be silently accepted and treated like `split -b 1'. Reported by Franc,ois.
Jim Meyering 33128a49 1996-05-22T12:37:29 Add copyright header.
Jim Meyering 9228fe6a 1995-10-09T03:48:08 Indent cpp directives to reflect nesting.
Jim Meyering e5bf58c3 1995-05-22T04:43:36 (__strtol): Remove prototype altogether. Move inclusion of xstrtol.h back so that it follows system headers.
Jim Meyering 9b8ea954 1995-05-21T11:44:25 merge with 1.11.1b
Jim Meyering fd6a9293 1995-01-27T05:22:23 .
Jim Meyering 7237f669 1994-12-22T05:10:32 Rearrange to accept a user-specified set of suffix chars (must be a subset of master list), each with a hard-coded value.
Jim Meyering 3af47ca3 1994-12-20T04:17:23 .