From 2604afb1b2d9acc3c70b1214285f996200bf0358 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 21 Sep 1997 01:47:02 +0000 Subject: Update. 1997-09-21 03:19 Ulrich Drepper * 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 . 1997-09-20 16:45 Ulrich Drepper * hesiod/hesiod.c (hesiod_init): Use __secure_getenv to get HES_DOMAIN environment variable. Suggested by Mark Kettenis . * hesiod/README.hesiod: A bit of information about Hesiod and how to use it. Written by Mark Kettenis . 1997-09-20 05:15 Ulrich Drepper * 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 . 1997-09-19 21:42 David S. Miller * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: ssize_t is a long long int. 1997-09-19 15:12 H.J. Lu * posix/Makefile (test-srcs): New, set to globtest. 1997-09-20 00:24 Ulrich Drepper * manual/filesys.texi: Document ftw, nftw and needed data types. 1997-09-19 12:53 H.J. Lu * sysdeps/i386/i486/bits/string.h: Fix typo. 1997-09-19 14:11 Ulrich Drepper * 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 . * catgets/catgets.c (catopen): Correctly allocate string of nlspath. Reported by Charles C. Fu . 1997-09-18 13:30 Klaus Espenlaub * 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 * manual/search.texi: Document lsearch, lfind, the hsearch and tsearch functions. 1997-09-18 00:04 Ulrich Drepper * 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 * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Get rid of hack for handling flush opcode. Patch by Richard Henderson . --- stdlib/stdlib.h | 159 ++++++++++++++++++++++++++++++++++---------------------- stdlib/strtol.c | 11 ++-- 2 files changed, 105 insertions(+), 65 deletions(-) (limited to 'stdlib') diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h index 7963cb6..a92df4b 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 +# include #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 97ad234..19e4a52 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 -- cgit v1.1