summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-01-23 13:47:20 +0000
committerUlrich Drepper <drepper@redhat.com>1999-01-23 13:47:20 +0000
commit8831788577cda2e19e27e6f1a793339abb9711fa (patch)
tree0cc1a1a1f76aa10b966a3d1c046e7a173ac227fc
parente3822a8a50bf40cfdc595a0f2e32a319a959ace0 (diff)
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.c6
-rw-r--r--ctype/ctype.h20
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. */