summaryrefslogtreecommitdiff
path: root/lib/strtoumax.c
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2001-08-26 06:53:56 +0000
committerJim Meyering <jim@meyering.net>2001-08-26 06:53:56 +0000
commitf9a905424fb22dfed54cae0ca64fcbbe483e9f8f (patch)
tree6a2304208d1cedf5ab8c19df7563dbe6ab1635c5 /lib/strtoumax.c
parent10d29bac27b886015658839128f0e7173b739291 (diff)
downloadcoreutils-f9a905424fb22dfed54cae0ca64fcbbe483e9f8f.tar.xz
Factored to work both for unsigned and signed types, ...
Diffstat (limited to 'lib/strtoumax.c')
-rw-r--r--lib/strtoumax.c45
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