aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/config/os/newlib/bits/ctype_noninline.h4
2 files changed, 8 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index ffa46d4..f29936c 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2001-11-01 Egor Duda <deo@logos-m.ru>
+
+ * config/os/newlib/bits/ctype_noninline.h
+ (ctype<char>::do_toupper(char __c)): Check for proper character class.
+ (ctype<char>::do_tolower(char __c)): Ditto.
+
2001-11-01 Phil Edwards <pme@gcc.gnu.org>
* acinclude.m4: Fix spacing.
diff --git a/libstdc++-v3/config/os/newlib/bits/ctype_noninline.h b/libstdc++-v3/config/os/newlib/bits/ctype_noninline.h
index 803e6d4..ae0a6e9 100644
--- a/libstdc++-v3/config/os/newlib/bits/ctype_noninline.h
+++ b/libstdc++-v3/config/os/newlib/bits/ctype_noninline.h
@@ -43,7 +43,7 @@
ctype<char>::do_toupper(char __c) const
{
int __x = __c;
- return (this->is(ctype_base::upper, __c) ? (__x - 'A' + 'a') : __x);
+ return (this->is(ctype_base::lower, __c) ? (__x - 'a' + 'A') : __x);
}
const char*
@@ -61,7 +61,7 @@
ctype<char>::do_tolower(char __c) const
{
int __x = __c;
- return (this->is(ctype_base::lower, __c) ? (__x - 'A' + 'a') : __x);
+ return (this->is(ctype_base::upper, __c) ? (__x - 'A' + 'a') : __x);
}
const char*