diff options
author | Ulrich Drepper <drepper@redhat.com> | 1999-01-23 13:47:20 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1999-01-23 13:47:20 +0000 |
commit | 8831788577cda2e19e27e6f1a793339abb9711fa (patch) | |
tree | 0cc1a1a1f76aa10b966a3d1c046e7a173ac227fc | |
parent | e3822a8a50bf40cfdc595a0f2e32a319a959ace0 (diff) | |
download | glibc-8831788577cda2e19e27e6f1a793339abb9711fa.tar.gz glibc-8831788577cda2e19e27e6f1a793339abb9711fa.tar.xz glibc-8831788577cda2e19e27e6f1a793339abb9711fa.zip |
Don't user __tolower directly for tolower implementation. Use inline function which tests for the range first. Make _tolower equivalent to old tolower macros. Likewise for toupper.
-rw-r--r-- | ctype/ctype.c | 6 | ||||
-rw-r--r-- | ctype/ctype.h | 20 |
2 files changed, 20 insertions, 6 deletions
diff --git a/ctype/ctype.c b/ctype/ctype.c index f9ceb35c08..1c684026fe 100644 --- a/ctype/ctype.c +++ b/ctype/ctype.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1997, 1999 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 @@ -39,11 +39,11 @@ func (isxdigit, _ISxdigit) int tolower (int c) { - return __tolower (c); + return __c >= -128 && __c < 256 ? __tolower (__c) : __c; } int toupper (int c) { - return __toupper (c); + return __c >= -128 && __c < 256 ? __toupper (__c) : __c; } diff --git a/ctype/ctype.h b/ctype/ctype.h index 5f732d2340..7b4ef36c53 100644 --- a/ctype/ctype.h +++ b/ctype/ctype.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 93, 95, 96, 97, 98 Free Software Foundation, Inc. +/* Copyright (C) 1991,92,93,95,96,97,98,99 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 @@ -150,12 +150,26 @@ __exctype (_tolower); # define isblank(c) __isctype((c), _ISblank) #endif -#define tolower(c) __tolower(c) -#define toupper(c) __toupper(c) +#if __GNUC__ >= 2 +extern inline int +tolower (int __c) +{ + return __c >= -128 && __c < 256 ? __tolower (__c) : __c; +} + +extern inline int +toupper (int __c) +{ + return __c >= -128 && __c < 256 ? __toupper (__c) : __c; +} +#endif #if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN # define isascii(c) __isascii(c) # define toascii(c) __toascii(c) + +# define _tolower(c) __tolower(c) +# define _toupper(c) __toupper(c) #endif #endif /* Not __NO_CTYPE. */ |