Don't user __tolower directly for tolower implementation. Use inline
authordrepper <drepper>
Sat, 23 Jan 1999 13:47:13 +0000 (13:47 +0000)
committerdrepper <drepper>
Sat, 23 Jan 1999 13:47:13 +0000 (13:47 +0000)
function which tests for the range first.  Make _tolower equivalent to
old tolower macros.  Likewise for toupper.

ctype/ctype.c
ctype/ctype.h

index f9ceb35..1c68402 100644 (file)
@@ -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;
 }
index 5f732d2..7b4ef36 100644 (file)
@@ -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.  */