diff options
-rw-r--r-- | ChangeLog | 25 | ||||
-rw-r--r-- | include/ctype.h | 11 | ||||
-rw-r--r-- | include/wctype.h | 11 | ||||
-rw-r--r-- | wctype/wcfuncs_l.c | 4 |
4 files changed, 44 insertions, 7 deletions
@@ -1,3 +1,11 @@ +2004-03-16 Ulrich Drepper <drepper@redhat.com> + + * include/ctype.h: For libc, define isdigit, isdigit_l, and + __isdigit_l as simple comparison macros. + * include/wctype.h: For libc, define iswdigit, iswdigit_l, and + __iswdigit_l as simple comparison macros. + * wctype/wcfuncs_l.c: #undef iswdigit and __iswdigit. + 2004-03-15 Ulrich Drepper <drepper@redhat.com> * sysdeps/sparc/fpu/bits/mathinline.h: Restore missing #ifdef. @@ -17,12 +25,17 @@ and bits/inf.h. * math/math.h: Include them. - * sysdeps/alpha/fpu/bits/mathdef.h, sysdeps/arm/fpu/bits/mathdef.h, - sysdeps/generic/bits/mathdef.h, sysdeps/i386/fpu/bits/mathdef.h, - sysdeps/ia64/fpu/bits/mathdef.h, sysdeps/m68k/fpu/bits/mathdef.h, - sysdeps/mips/fpu/bits/mathdef.h, sysdeps/powerpc/fpu/bits/mathdef.h, - sysdeps/sh/sh4/fpu/bits/mathdef.h, sysdeps/sparc/fpu/bits/mathdef.h, - sysdeps/x86_64/fpu/bits/mathdef.h: Remove INFINITY. + * sysdeps/alpha/fpu/bits/mathdef.h: Remove INFINITY. + * sysdeps/arm/fpu/bits/mathdef.h: Likewise. + * sysdeps/generic/bits/mathdef.h: Likewise. + * sysdeps/i386/fpu/bits/mathdef.h: Likewise. + * sysdeps/ia64/fpu/bits/mathdef.h: Likewise. + * sysdeps/m68k/fpu/bits/mathdef.h: Likewise. + * sysdeps/mips/fpu/bits/mathdef.h: Likewise. + * sysdeps/powerpc/fpu/bits/mathdef.h: Likewise. + * sysdeps/sh/sh4/fpu/bits/mathdef.h: Likewise. + * sysdeps/sparc/fpu/bits/mathdef.h: Likewise. + * sysdeps/x86_64/fpu/bits/mathdef.h: Likewise. * sysdeps/arm/bits/huge_val.h (HUGE_VAL): Use __builtin_huge_val. (HUGE_VALF, HUGE_VALL): Remove. diff --git a/include/ctype.h b/include/ctype.h index 4896d14..ae38b1b 100644 --- a/include/ctype.h +++ b/include/ctype.h @@ -68,4 +68,15 @@ __ctype_tolower_loc (void) # include <ctype/ctype.h> +# if !defined __NO_CTYPE && !defined NOT_IN_libc +/* 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 /* ctype.h */ diff --git a/include/wctype.h b/include/wctype.h index a2d5e18..2828c3a 100644 --- a/include/wctype.h +++ b/include/wctype.h @@ -84,4 +84,15 @@ libc_hidden_proto (__iswxdigit_l) libc_hidden_proto (__towlower_l) libc_hidden_proto (__towupper_l) +/* The spec says that isdigit must only match the decimal digits. We + can check this without a memory access. */ +# ifndef NOT_IN_libc +# undef iswdigit +# define iswdigit(c) ({ wint_t __c = (c); __c >= L'0' && __c <= L'9'; }) +# undef iswdigit_l +# define iswdigit_l(c, l) ({ wint_t __c = (c); __c >= L'0' && __c <= L'9'; }) +# undef __iswdigit_l +# define __iswdigit_l(c, l) ({ wint_t __c = (c); __c >= L'0' && __c <= L'9'; }) +# endif + #endif diff --git a/wctype/wcfuncs_l.c b/wctype/wcfuncs_l.c index 5556dc4..c10af76 100644 --- a/wctype/wcfuncs_l.c +++ b/wctype/wcfuncs_l.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1996,1997,2000,2001,2002,2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -40,6 +40,8 @@ func (iswalnum_l, __ISwalnum) func (iswalpha_l, __ISwalpha) func (iswblank_l, __ISwblank) func (iswcntrl_l, __ISwcntrl) +#undef iswdigit_l +#undef __iswdigit_l func (iswdigit_l, __ISwdigit) func (iswlower_l, __ISwlower) func (iswgraph_l, __ISwgraph) |