diff options
author | Roland McGrath <roland@hack.frob.com> | 2014-10-30 13:19:34 -0700 |
---|---|---|
committer | Roland McGrath <roland@hack.frob.com> | 2014-10-30 14:00:26 -0700 |
commit | b4f6688462ba4f7fb4766f11ed5b70c70ea0623a (patch) | |
tree | fdfb0c26fcbcb2dadb7dfab28bb7f799610d47f6 | |
parent | e19c95fd5ed81c1d47c6784c18942c552e6f4562 (diff) | |
download | glibc-b4f6688462ba4f7fb4766f11ed5b70c70ea0623a.tar.gz glibc-b4f6688462ba4f7fb4766f11ed5b70c70ea0623a.tar.xz glibc-b4f6688462ba4f7fb4766f11ed5b70c70ea0623a.zip |
Clean up internal ctype.h header.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | include/ctype.h | 32 |
2 files changed, 22 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog index 44920af672..ef67160e1b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2014-10-30 Roland McGrath <roland@hack.frob.com> + + * include/ctype.h: Include <ctype/ctype.h> 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 <joseph@codesourcery.com> * include/sys/uio.h (__libc_readv): Remove declaration. diff --git a/include/ctype.h b/include/ctype.h index 6a18039e3f..2ef2bd24e8 100644 --- a/include/ctype.h +++ b/include/ctype.h @@ -1,11 +1,15 @@ #ifndef _CTYPE_H +#include <ctype/ctype.h> + #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 <ctype/ctype.h> - -#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 */ |