[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
declare strtoull in stdlib.h
From: |
Bruno Haible |
Subject: |
declare strtoull in stdlib.h |
Date: |
Sun, 19 Oct 2008 18:50:27 +0200 |
User-agent: |
KMail/1.5.4 |
Like strtoll(), strtoull() also should be declared in <stdlib.h>. This does it.
2008-10-19 Bruno Haible <address@hidden>
Add strtoull() declaration to <stdlib.h>.
* lib/stdlib.in.h (strtoull): New declaration.
* m4/strtoull.m4 (gl_FUNC_STRTOLL): Require gl_STDLIB_H_DEFAULTS.
Set HAVE_STRTOULL.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_STRTOULL,
HAVE_STRTOULL.
* modules/strtoull (Depends-on): Add stdlib.
(configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR.
* modules/stdlib (Makefile.am): Substitute GNULIB_STRTOULL,
HAVE_STRTOULL.
--- lib/stdlib.in.h.orig 2008-10-19 18:48:29.000000000 +0200
+++ lib/stdlib.in.h 2008-10-19 18:45:23.000000000 +0200
@@ -265,8 +265,8 @@
"0x").
If ENDPTR is not NULL, the address of the first byte after the integer is
stored in *ENDPTR.
- Upon overflow or underflow, the return value is LLONG_MAX or LLONG_MIN,
- respectively, and errno is set to ERANGE. */
+ Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set
+ to ERANGE. */
extern long long strtoll (const char *string, char **endptr, int base);
# endif
#elif defined GNULIB_POSIXCHECK
@@ -278,6 +278,27 @@
#endif
+#if @GNULIB_STRTOULL@
+# if address@hidden@
+/* Parse an unsigned integer whose textual representation starts at STRING.
+ The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
+ it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
+ "0x").
+ If ENDPTR is not NULL, the address of the first byte after the integer is
+ stored in *ENDPTR.
+ Upon overflow, the return value is ULLONG_MAX, and errno is set to
+ ERANGE. */
+extern unsigned long long strtoull (const char *string, char **endptr, int
base);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strtoull
+# define strtoull(s,e,b) \
+ (GL_LINK_WARNING ("strtoull is unportable - " \
+ "use gnulib module strtoull for portability"), \
+ strtoull (s, e, b))
+#endif
+
+
#ifdef __cplusplus
}
#endif
--- m4/stdlib_h.m4.orig 2008-10-19 18:48:29.000000000 +0200
+++ m4/stdlib_h.m4 2008-10-19 18:46:25.000000000 +0200
@@ -1,4 +1,4 @@
-# stdlib_h.m4 serial 9
+# stdlib_h.m4 serial 10
dnl Copyright (C) 2007, 2008 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -31,6 +31,7 @@
GNULIB_SETENV=0; AC_SUBST([GNULIB_SETENV])
GNULIB_STRTOD=0; AC_SUBST([GNULIB_STRTOD])
GNULIB_STRTOLL=0; AC_SUBST([GNULIB_STRTOLL])
+ GNULIB_STRTOULL=0; AC_SUBST([GNULIB_STRTOULL])
GNULIB_UNSETENV=0; AC_SUBST([GNULIB_UNSETENV])
dnl Assume proper GNU behavior unless another module says otherwise.
HAVE_CALLOC_POSIX=1; AC_SUBST([HAVE_CALLOC_POSIX])
@@ -42,6 +43,7 @@
HAVE_SETENV=1; AC_SUBST([HAVE_SETENV])
HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD])
HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL])
+ HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL])
HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H])
HAVE_UNSETENV=1; AC_SUBST([HAVE_UNSETENV])
HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG])
--- m4/strtoull.m4.orig 2008-10-19 18:48:29.000000000 +0200
+++ m4/strtoull.m4 2008-10-19 18:46:57.000000000 +0200
@@ -1,17 +1,19 @@
-# strtoull.m4 serial 4
-dnl Copyright (C) 2002, 2004, 2006 Free Software Foundation, Inc.
+# strtoull.m4 serial 5
+dnl Copyright (C) 2002, 2004, 2006, 2008 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN([gl_FUNC_STRTOULL],
[
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
dnl We don't need (and can't compile) the replacement strtoull
dnl unless the type 'unsigned long long int' exists.
AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
if test "$ac_cv_type_unsigned_long_long_int" = yes; then
AC_REPLACE_FUNCS(strtoull)
if test $ac_cv_func_strtoull = no; then
+ HAVE_STRTOULL=0
gl_PREREQ_STRTOULL
fi
fi
--- modules/stdlib.orig 2008-10-19 18:48:29.000000000 +0200
+++ modules/stdlib 2008-10-19 18:46:00.000000000 +0200
@@ -36,6 +36,7 @@
-e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \
-e 's|@''GNULIB_STRTOD''@|$(GNULIB_STRTOD)|g' \
-e 's|@''GNULIB_STRTOLL''@|$(GNULIB_STRTOLL)|g' \
+ -e 's|@''GNULIB_STRTOULL''@|$(GNULIB_STRTOULL)|g' \
-e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \
-e 's|@''HAVE_CALLOC_POSIX''@|$(HAVE_CALLOC_POSIX)|g' \
-e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
@@ -46,6 +47,7 @@
-e 's|@''HAVE_SETENV''@|$(HAVE_SETENV)|g' \
-e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
-e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
+ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \
-e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \
-e 's|@''HAVE_UNSETENV''@|$(HAVE_UNSETENV)|g' \
-e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
--- modules/strtoull.orig 2008-10-19 18:48:29.000000000 +0200
+++ modules/strtoull 2008-10-19 18:47:23.000000000 +0200
@@ -7,10 +7,12 @@
m4/strtoull.m4
Depends-on:
+unistd
strtoul
configure.ac:
gl_FUNC_STRTOULL
+gl_STDLIB_MODULE_INDICATOR([strtoull])
Makefile.am:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- declare strtoull in stdlib.h,
Bruno Haible <=