From: Roland McGrath Date: Thu, 30 Oct 2014 20:19:34 +0000 (-0700) Subject: Clean up internal ctype.h header. X-Git-Tag: upstream/2.30~6866 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b4f6688462ba4f7fb4766f11ed5b70c70ea0623a;p=external%2Fglibc.git Clean up internal ctype.h header. --- diff --git a/ChangeLog b/ChangeLog index 44920af..ef67160 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2014-10-30 Roland McGrath + + * include/ctype.h: Include first thing rather than + after defining inlines. Instead, just use parens to defeat macro + expansion of __isctype in its declaration. + 2014-10-30 Joseph Myers * include/sys/uio.h (__libc_readv): Remove declaration. diff --git a/include/ctype.h b/include/ctype.h index 6a18039..2ef2bd2 100644 --- a/include/ctype.h +++ b/include/ctype.h @@ -1,11 +1,15 @@ #ifndef _CTYPE_H +#include + #ifndef _ISOMAC /* Initialize ctype locale data. */ extern void __ctype_init (void); libc_hidden_proto (__ctype_init) -extern int __isctype (int __c, int __mask); +/* ctype/ctype.h defined this as a macro and we don't want to #undef it. + So defeat macro expansion with parens for this declaration. */ +extern int (__isctype) (int __c, int __mask); # ifndef NOT_IN_libc @@ -46,22 +50,18 @@ __ctype_tolower_loc (void) return __libc_tsd_address (const int32_t *, CTYPE_TOLOWER); } -# endif /* Not NOT_IN_libc. */ -#endif - -#include - -#ifndef _ISOMAC -# if !defined __NO_CTYPE && !defined NOT_IN_libc +# ifndef __NO_CTYPE /* The spec says that isdigit must only match the decimal digits. We can check this without a memory access. */ -# undef isdigit -# define isdigit(c) ({ int __c = (c); __c >= '0' && __c <= '9'; }) -# undef isdigit_l -# define isdigit_l(c, l) ({ int __c = (c); __c >= '0' && __c <= '9'; }) -# undef __isdigit_l -# define __isdigit_l(c, l) ({ int __c = (c); __c >= '0' && __c <= '9'; }) -# endif -#endif +# undef isdigit +# define isdigit(c) ({ int __c = (c); __c >= '0' && __c <= '9'; }) +# undef isdigit_l +# define isdigit_l(c, l) ({ int __c = (c); __c >= '0' && __c <= '9'; }) +# undef __isdigit_l +# define __isdigit_l(c, l) ({ int __c = (c); __c >= '0' && __c <= '9'; }) +# endif /* Not __NO_CTYPE. */ + +# endif /* Not NOT_IN_libc. */ +#endif /* Not _ISOMAC. */ #endif /* ctype.h */