diff options
author | Ulrich Drepper <drepper@redhat.com> | 1997-09-21 01:47:02 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1997-09-21 01:47:02 +0000 |
commit | 2604afb1b2d9acc3c70b1214285f996200bf0358 (patch) | |
tree | ba59d75147565b8ab19686d98cee368d8ec697fc /stdlib | |
parent | 4547c1a410fbc3ab5592a68bac1661135d91983f (diff) | |
download | glibc-2604afb1b2d9acc3c70b1214285f996200bf0358.tar.gz |
Update.cvs/libc-ud-970920
1997-09-21 03:19 Ulrich Drepper <drepper@cygnus.com>
* libio/libio.h: More libstdc++ cleanups. Define _IO_USE_DTOA if
_G_HAVE_PRINTF_FP is not defined.
* libio/strops.c: Undo patch of 1997-07-08 02:18. Must find a
different solution for the problem.
* misc/search.h [__USE_GNU]: Define comparison_fn_t.
* stdlib/stdlib.h: Define comparison_fn_t only if __COMPAR_FN_T is
not defined.
Fix typo. Pretty print inline functions.
* sysdeps/i386/i486/string.h (__stpcpy_small): Increment __cp not cp.
Patch by HJ Lu <hjl@gnu.ai.mit.edu>.
1997-09-20 16:45 Ulrich Drepper <drepper@cygnus.com>
* hesiod/hesiod.c (hesiod_init): Use __secure_getenv to get
HES_DOMAIN environment variable.
Suggested by Mark Kettenis <kettenis@phys.uva.nl>.
* hesiod/README.hesiod: A bit of information about Hesiod and how
to use it. Written by Mark Kettenis <kettenis@phys.uva.nl>.
1997-09-20 05:15 Ulrich Drepper <drepper@cygnus.com>
* manual/maint.texi: Update requirement list.
* io/ftw.h: Don't use parameter names from global namespace in
prototypes.
* stdlib/strtol.c: If used outside glibc handle broken systems
which have character classification functions which are not 8-bit
clean gracefully. Patch by Bruno Haible <haible@ilog.fr>.
1997-09-19 21:42 David S. Miller <davem@tanya.rutgers.edu>
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: ssize_t is
a long long int.
1997-09-19 15:12 H.J. Lu <hjl@gnu.ai.mit.edu>
* posix/Makefile (test-srcs): New, set to globtest.
1997-09-20 00:24 Ulrich Drepper <drepper@cygnus.com>
* manual/filesys.texi: Document ftw, nftw and needed data types.
1997-09-19 12:53 H.J. Lu <hjl@gnu.ai.mit.edu>
* sysdeps/i386/i486/bits/string.h: Fix typo.
1997-09-19 14:11 Ulrich Drepper <drepper@cygnus.com>
* io/ftwtest.c (cb): Print level.
* io/ftwtest-sh: Updated for ftwtest.c change.
* string/argz.h (__argz_next): Cast NULL to char * to satisfy C++
compilers.
Reported by Mirko Streckenbach <mirko@ramz.ing.tu-bs.de>.
* catgets/catgets.c (catopen): Correctly allocate string of nlspath.
Reported by Charles C. Fu <ccwf@klab.caltech.edu>.
1997-09-18 13:30 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de>
* sysdeps/i386/init-first.c: Call __getopt_clean_environment with
additional argument.
* sysdeps/mach/hurd/i386/init-first.c: Likewise.
* sysdeps/mach/hurd/mips/init-first.c: Likewise.
* sysdeps/stub/init-first.c: Likewise.
1997-09-18 03:16 Ulrich Drepper <drepper@cygnus.com>
* manual/search.texi: Document lsearch, lfind, the hsearch and
tsearch functions.
1997-09-18 00:04 Ulrich Drepper <drepper@cygnus.com>
* misc/hsearch_r.c (hsearch_r): Only return error for ENTER action
if the table is full and we *really* have to enter a new entry.
1997-09-17 19:44 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Get rid
of hack for handling flush opcode.
Patch by Richard Henderson <rth@cygnus.com>.
Diffstat (limited to 'stdlib')
-rw-r--r-- | stdlib/stdlib.h | 159 | ||||
-rw-r--r-- | stdlib/strtol.c | 11 |
2 files changed, 105 insertions, 65 deletions
diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h index 7963cb6fec..a92df4bc9e 100644 --- a/stdlib/stdlib.h +++ b/stdlib/stdlib.h @@ -210,58 +210,90 @@ extern unsigned long long int __strtoull_internal __P ((__const char * #if defined __OPTIMIZE__ && __GNUC__ >= 2 /* Define inline functions which call the internal entry points. */ -extern __inline double strtod (__const char *__restrict __nptr, - char **__restrict __endptr) -{ return __strtod_internal (__nptr, __endptr, 0); } -extern __inline long int strtol (__const char *__restrict __nptr, - char **__restrict __endptr, int __base) -{ return __strtol_internal (__nptr, __endptr, __base, 0); } -extern __inline unsigned long int strtoul (__const char *__restrict __nptr, - char **__restrict __endptr, - int __base) -{ return __strtoul_internal (__nptr, __endptr, __base, 0); } - -#ifdef __USE_GNU -extern __inline float strtof (__const char *__restrict __nptr, - char **__restrict __endptr) -{ return __strtof_internal (__nptr, __endptr, 0); } -extern __inline __long_double_t strtold (__const char *__restrict __nptr, - char **__restrict __endptr) -{ return __strtold_internal (__nptr, __endptr, 0); } -#endif - -#ifdef __USE_BSD -extern __inline long long int strtoq (__const char *__restrict __nptr, - char **__restrict __endptr, int __base) -{ return __strtoll_internal (__nptr, __endptr, __base, 0); } -extern __inline unsigned long long int strtouq (__const char *__restrict __nptr, - char **__restrict __endptr, - int __base) -{ return __strtoull_internal (__nptr, __endptr, __base, 0); } -#endif - -#if defined __USE_MISC || defined __USE_ISOC9X -extern __inline long long int strtoll (__const char *__restrict __nptr, - char **__restrict __endptr, int __base) -{ return __strtoll_internal (__nptr, __endptr, __base, 0); } -extern __inline unsigned long long int strtoull (__const char * - __restrict __nptr, - char **__restrict __endptr, - int __base) -{ return __strtoull_internal (__nptr, __endptr, __base, 0); } -#endif - -extern __inline double atof (__const char *__nptr) -{ return strtod (__nptr, (char **) NULL); } -extern __inline int atoi (__const char *__nptr) -{ return (int) strtol (__nptr, (char **) NULL, 10); } -extern __inline long int atol (__const char *__nptr) -{ return strtol (__nptr, (char **) NULL, 10); } - -#if defined __USE_MISC || defined __USE_ISOC9X -extern __inline long long int atoll (__const char *__nptr) -{ return strtoll (__nptr, (char **) NULL, 10); } -#endif +extern __inline double +strtod (__const char *__restrict __nptr, char **__restrict __endptr) +{ + return __strtod_internal (__nptr, __endptr, 0); +} +extern __inline long int +strtol (__const char *__restrict __nptr, char **__restrict __endptr, + int __base) +{ + return __strtol_internal (__nptr, __endptr, __base, 0); +} +extern __inline unsigned long int +strtoul (__const char *__restrict __nptr, char **__restrict __endptr, + int __base) +{ + return __strtoul_internal (__nptr, __endptr, __base, 0); +} + +# ifdef __USE_GNU +extern __inline float +strtof (__const char *__restrict __nptr, char **__restrict __endptr) +{ + return __strtof_internal (__nptr, __endptr, 0); +} +extern __inline __long_double_t +strtold (__const char *__restrict __nptr, char **__restrict __endptr) +{ + return __strtold_internal (__nptr, __endptr, 0); +} +# endif + +# ifdef __USE_BSD +extern __inline long long int +strtoq (__const char *__restrict __nptr, char **__restrict __endptr, + int __base) +{ + return __strtoll_internal (__nptr, __endptr, __base, 0); +} +extern __inline unsigned long long int +strtouq (__const char *__restrict __nptr, char **__restrict __endptr, + int __base) +{ + return __strtoull_internal (__nptr, __endptr, __base, 0); +} +# endif + +# if defined __USE_MISC || defined __USE_ISOC9X +extern __inline long long int +strtoll (__const char *__restrict __nptr, char **__restrict __endptr, + int __base) +{ + return __strtoll_internal (__nptr, __endptr, __base, 0); +} +extern __inline unsigned long long int +strtoull (__const char * __restrict __nptr, char **__restrict __endptr, + int __base) +{ + return __strtoull_internal (__nptr, __endptr, __base, 0); +} +# endif + +extern __inline double +atof (__const char *__nptr) +{ + return strtod (__nptr, (char **) NULL); +} +extern __inline int +atoi (__const char *__nptr) +{ + return (int) strtol (__nptr, (char **) NULL, 10); +} +extern __inline long int +atol (__const char *__nptr) +{ + return strtol (__nptr, (char **) NULL, 10); +} + +# if defined __USE_MISC || defined __USE_ISOC9X +extern __inline long long int +atoll (__const char *__nptr) +{ + return strtoll (__nptr, (char **) NULL, 10); +} +# endif #endif /* Optimizing GCC >=2. */ @@ -304,7 +336,7 @@ extern __ptr_t __setstate __P ((__ptr_t __statebuf)); extern __ptr_t setstate __P ((__ptr_t __statebuf)); -#ifdef __USE_MISC +# ifdef __USE_MISC /* Reentrant versions of the `random' family of functions. These functions all use the following data structure to contain state, rather than global state variables. */ @@ -333,7 +365,7 @@ extern int initstate_r __P ((unsigned int __seed, __ptr_t __statebuf, extern int __setstate_r __P ((__ptr_t __statebuf, struct random_data *__buf)); extern int setstate_r __P ((__ptr_t __statebuf, struct random_data *__buf)); -#endif /* Use misc. */ +# endif /* Use misc. */ #endif /* Use SVID || extended X/Open. */ @@ -441,7 +473,7 @@ extern void cfree __P ((__ptr_t __ptr)); #endif /* Use misc. */ #if defined __USE_GNU || defined __USE_BSD || defined __USE_MISC -#include <alloca.h> +# include <alloca.h> #endif /* Use GNU, BSD, or misc. */ #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED @@ -545,12 +577,12 @@ extern char *realpath __P ((__const char *__name, char *__resolved)); /* Shorthand for type of comparison functions. */ #ifndef __COMPAR_FN_T -#define __COMPAR_FN_T +# define __COMPAR_FN_T typedef int (*__compar_fn_t) __P ((__const __ptr_t, __const __ptr_t)); -#endif -#ifdef __USE_GNU +# ifdef __USE_GNU typedef __compar_fn_t comparison_fn_t; +# endif #endif /* Do a binary search for KEY in BASE, which consists of NMEMB elements @@ -568,7 +600,7 @@ extern void qsort __P ((__ptr_t __base, size_t __nmemb, size_t __size, /* Return the absolute value of X. */ extern int abs __P ((int __x)) __attribute__ ((__const__)); extern long int labs __P ((long int __x)) __attribute__ ((__const__)); -#if defined __USE_ISOC9X +#ifdef __USE_ISOC9X extern long long int llabs __P ((long long int __x)) __attribute__ ((__const__)); #endif @@ -643,8 +675,11 @@ extern int mbtowc __P ((wchar_t *__restrict __pwc, extern int wctomb __P ((char *__s, wchar_t __wchar)); #if defined __OPTIMIZE__ && __GNUC__ >= 2 -extern __inline int mblen (__const char *__s, size_t __n) -{ return mbtowc ((wchar_t *) NULL, __s, __n); } +extern __inline int +mblen (__const char *__s, size_t __n) +{ + return mbtowc ((wchar_t *) NULL, __s, __n); +} #endif /* Optimizing GCC >=2. */ @@ -671,7 +706,7 @@ extern int rpmatch __P ((__const char *__response)); optional value introduced by an equal sign. If the suboption is not part of TOKENS return in *VALUEP beginning of unknown suboption. On exit *OPTIONP is set to the beginning of the next - otken or at the terminating NUL character. */ + token or at the terminating NUL character. */ extern int getsubopt __P ((char **__optionp, __const char *__const *__tokens, char **__valuep)); #endif diff --git a/stdlib/strtol.c b/stdlib/strtol.c index 97ad23453b..19e4a52880 100644 --- a/stdlib/strtol.c +++ b/stdlib/strtol.c @@ -184,6 +184,11 @@ extern int errno; # define TOUPPER(Ch) towupper (Ch) # endif # else +# if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII) +# define IN_CTYPE_DOMAIN(c) 1 +# else +# define IN_CTYPE_DOMAIN(c) isascii(c) +# endif # define L_(Ch) Ch # define UCHAR_TYPE unsigned char # define STRING_TYPE char @@ -192,9 +197,9 @@ extern int errno; # define ISALPHA(Ch) __isalpha_l ((Ch), loc) # define TOUPPER(Ch) __toupper_l ((Ch), loc) # else -# define ISSPACE(Ch) isspace (Ch) -# define ISALPHA(Ch) isalpha (Ch) -# define TOUPPER(Ch) toupper (Ch) +# define ISSPACE(Ch) (IN_CTYPE_DOMAIN (Ch) && isspace (Ch)) +# define ISALPHA(Ch) (IN_CTYPE_DOMAIN (Ch) && isalpha (Ch)) +# define TOUPPER(Ch) (IN_CTYPE_DOMAIN (Ch) ? toupper (Ch) : (Ch)) # endif #endif |