diff options
author | Jim Meyering <jim@meyering.net> | 2001-08-26 06:53:56 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2001-08-26 06:53:56 +0000 |
commit | f9a905424fb22dfed54cae0ca64fcbbe483e9f8f (patch) | |
tree | 6a2304208d1cedf5ab8c19df7563dbe6ab1635c5 /lib | |
parent | 10d29bac27b886015658839128f0e7173b739291 (diff) | |
download | coreutils-f9a905424fb22dfed54cae0ca64fcbbe483e9f8f.tar.xz |
Factored to work both for unsigned and signed types, ...
Diffstat (limited to 'lib')
-rw-r--r-- | lib/strtoumax.c | 45 |
1 files changed, 34 insertions, 11 deletions
diff --git a/lib/strtoumax.c b/lib/strtoumax.c index a147604ad..963d97703 100644 --- a/lib/strtoumax.c +++ b/lib/strtoumax.c @@ -1,5 +1,5 @@ /* Convert string representation of a number into an uintmax_t value. - Copyright 1999 Free Software Foundation, Inc. + Copyright 2001 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 @@ -37,18 +37,41 @@ # endif #endif -#ifndef HAVE_DECL_STRTOUL +#ifdef STRTOUXMAX_UNSIGNED +# ifndef HAVE_DECL_STRTOUL "this configure-time declaration test was not run" -#endif -#if !HAVE_DECL_STRTOUL +# endif +# if !HAVE_DECL_STRTOUL unsigned long strtoul PARAMS ((char const *, char **, int)); -#endif +# endif +# ifndef HAVE_DECL_STRTOULL +"this configure-time declaration test was not run" +# endif +# if !HAVE_DECL_STRTOULL && HAVE_UNSIGNED_LONG_LONG +unsigned long long strtoull PARAMS ((char const *, char **, int)); +# endif -#ifndef HAVE_DECL_STRTOULL +#else + +# ifndef HAVE_DECL_STRTOL +"this configure-time declaration test was not run" +# endif +# if !HAVE_DECL_STRTOL +long strtol PARAMS ((char const *, char **, int)); +# endif +# ifndef HAVE_DECL_STRTOLL "this configure-time declaration test was not run" +# endif +# if !HAVE_DECL_STRTOLL && HAVE_UNSIGNED_LONG_LONG +long long strtoll PARAMS ((char const *, char **, int)); +# endif #endif -#if !HAVE_DECL_STRTOULL && HAVE_UNSIGNED_LONG_LONG -unsigned long long strtoull PARAMS ((char const *, char **, int)); + +#ifndef STRTOUXMAX_UNSIGNED +# define strtoumax strtoimax +# define uintmax_t intmax_t +# define strtoull strtoll +# define strtoul strtol #endif uintmax_t @@ -73,9 +96,9 @@ int main () { char *p, *endptr; - printf ("sizeof uintmax_t: %d\n", sizeof (uintmax_t)); - printf ("sizeof strtoull(): %d\n", sizeof strtoull(p, &endptr, 10)); - printf ("sizeof strtoul(): %d\n", sizeof strtoul(p, &endptr, 10)); + printf ("sizeof xintmax_t: %d\n", sizeof (uintmax_t)); + printf ("sizeof strtoxll(): %d\n", sizeof strtoull(p, &endptr, 10)); + printf ("sizeof strtoxl(): %d\n", sizeof strtoul(p, &endptr, 10)); exit (0); } #endif |