From 8831788577cda2e19e27e6f1a793339abb9711fa Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 23 Jan 1999 13:47:20 +0000 Subject: [PATCH] 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. --- ctype/ctype.c | 6 +++--- 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. */ -- 2.11.4.GIT