projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
NEWS.stable: update
[gnulib.git]
/
lib
/
strtol.c
diff --git
a/lib/strtol.c
b/lib/strtol.c
index
39508b4
..
6c15d11
100644
(file)
--- a/
lib/strtol.c
+++ b/
lib/strtol.c
@@
-1,7
+1,7
@@
/* Convert string representation of a number into an integer value.
/* Convert string representation of a number into an integer value.
- Copyright (C) 1991
, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2003, 2005,
-
2006, 2007, 2009 Free Software
Foundation, Inc.
+ Copyright (C) 1991
-1992, 1994-1999, 2003, 2005-2007, 2009-2011 Free Software
+ Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C
Library. Bugs can be reported to bug-glibc@gnu.org.
NOTE: The canonical source of this file is maintained with the GNU C
Library. Bugs can be reported to bug-glibc@gnu.org.
@@
-114,9
+114,9
@@
operating on `long long int's. */
#ifdef QUAD
# define LONG long long
operating on `long long int's. */
#ifdef QUAD
# define LONG long long
-# define STRTOL_LONG_MIN L
ONG_
LONG_MIN
-# define STRTOL_LONG_MAX L
ONG_
LONG_MAX
-# define STRTOL_ULONG_MAX UL
ONG_
LONG_MAX
+# define STRTOL_LONG_MIN LLONG_MIN
+# define STRTOL_LONG_MAX LLONG_MAX
+# define STRTOL_ULONG_MAX ULLONG_MAX
/* The extra casts in the following macros work around compiler bugs,
e.g., in Cray C 5.0.3.0. */
/* The extra casts in the following macros work around compiler bugs,
e.g., in Cray C 5.0.3.0. */
@@
-141,25
+141,25
@@
? (t) 0 \
: TYPE_SIGNED_MAGNITUDE (t) \
? ~ (t) 0 \
? (t) 0 \
: TYPE_SIGNED_MAGNITUDE (t) \
? ~ (t) 0 \
- : ~
(t) 0 << (sizeof (t) * CHAR_BIT - 1
)))
+ : ~
TYPE_MAXIMUM (t
)))
# define TYPE_MAXIMUM(t) \
((t) (! TYPE_SIGNED (t) \
? (t) -1 \
# define TYPE_MAXIMUM(t) \
((t) (! TYPE_SIGNED (t) \
? (t) -1 \
- :
~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)
)))
+ :
((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1
)))
-# ifndef UL
ONG_
LONG_MAX
-# define UL
ONG_
LONG_MAX TYPE_MAXIMUM (unsigned long long)
+# ifndef ULLONG_MAX
+# define ULLONG_MAX TYPE_MAXIMUM (unsigned long long)
# endif
# endif
-# ifndef L
ONG_
LONG_MAX
-# define L
ONG_
LONG_MAX TYPE_MAXIMUM (long long int)
+# ifndef LLONG_MAX
+# define LLONG_MAX TYPE_MAXIMUM (long long int)
# endif
# endif
-# ifndef L
ONG_
LONG_MIN
-# define L
ONG_
LONG_MIN TYPE_MINIMUM (long long int)
+# ifndef LLONG_MIN
+# define LLONG_MIN TYPE_MINIMUM (long long int)
# endif
# if __GNUC__ == 2 && __GNUC_MINOR__ < 7
/* Work around gcc bug with using this constant. */
# endif
# if __GNUC__ == 2 && __GNUC_MINOR__ < 7
/* Work around gcc bug with using this constant. */
- static const unsigned long long int maxquad = UL
ONG_
LONG_MAX;
+ static const unsigned long long int maxquad = ULLONG_MAX;
# undef STRTOL_ULONG_MAX
# define STRTOL_ULONG_MAX maxquad
# endif
# undef STRTOL_ULONG_MAX
# define STRTOL_ULONG_MAX maxquad
# endif
@@
-186,9
+186,8
@@
# define LOCALE_PARAM_PROTO
#endif
# define LOCALE_PARAM_PROTO
#endif
-#include <wchar.h>
-
#ifdef USE_WIDE_CHAR
#ifdef USE_WIDE_CHAR
+# include <wchar.h>
# include <wctype.h>
# define L_(Ch) L##Ch
# define UCHAR_TYPE wint_t
# include <wctype.h>
# define L_(Ch) L##Ch
# define UCHAR_TYPE wint_t