strtoimax: port to platforms lacking 'long long'
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 16 Jan 2014 21:01:07 +0000 (13:01 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 16 Jan 2014 21:01:46 +0000 (13:01 -0800)
VMS's pre-C99 compiler lacks 'long long', so 'configure' doesn't
check whether strtoll is declared, which causes the C file to
wrongly report an error.  Problem reported by Steven M. Schweda in:
http://lists.gnu.org/archive/html/bug-diffutils/2014-01/msg00003.html
* lib/strtoimax.c (strtoull):
Declare only if HAVE_UNSIGNED_LONG_LONG_INT.
(strtoll): Declare only if HAVE_LONG_LONG_INT.

ChangeLog
lib/strtoimax.c

index 9a9f00b..ebfba06 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2014-01-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       strtoimax: port to platforms lacking 'long long'
+       VMS's pre-C99 compiler lacks 'long long', so 'configure' doesn't
+       check whether strtoll is declared, which causes the C file to
+       wrongly report an error.  Problem reported by Steven M. Schweda in:
+       http://lists.gnu.org/archive/html/bug-diffutils/2014-01/msg00003.html
+       * lib/strtoimax.c (strtoull):
+       Declare only if HAVE_UNSIGNED_LONG_LONG_INT.
+       (strtoll): Declare only if HAVE_LONG_LONG_INT.
+
 2014-01-16  Daniel Albers  <daniel@lbe.rs>  (tiny change)
 
        relocatable-perl: fix texi syntax
index 219ebaf..2c33d58 100644 (file)
 #include "verify.h"
 
 #ifdef UNSIGNED
-# ifndef HAVE_DECL_STRTOULL
+# if HAVE_UNSIGNED_LONG_LONG_INT
+#  ifndef HAVE_DECL_STRTOULL
 "this configure-time declaration test was not run"
-# endif
-# if !HAVE_DECL_STRTOULL && HAVE_UNSIGNED_LONG_LONG_INT
+#  endif
+#  if !HAVE_DECL_STRTOULL
 unsigned long long int strtoull (char const *, char **, int);
+#  endif
 # endif
 
 #else
 
-# ifndef HAVE_DECL_STRTOLL
+# if HAVE_LONG_LONG_INT
+#  ifndef HAVE_DECL_STRTOLL
 "this configure-time declaration test was not run"
-# endif
-# if !HAVE_DECL_STRTOLL && HAVE_LONG_LONG_INT
+#  endif
+#  if !HAVE_DECL_STRTOLL
 long long int strtoll (char const *, char **, int);
+#  endif
 # endif
 #endif