aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Ferris <cferris@google.com>2016-11-17 20:06:05 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2016-11-17 20:06:05 +0000
commita5c16983a65e2169174a0e77a54c0ce650f87b48 (patch)
tree1e2afb4c99341581ab9ad07e0b415b2372fbce36
parent3613c20c59f931caa7d5411e4350306a4d6ad1e0 (diff)
parentf76a21a1854f56a28415e0fd87a8f43a2abcab94 (diff)
downloadandroid_bionic-a5c16983a65e2169174a0e77a54c0ce650f87b48.tar.gz
android_bionic-a5c16983a65e2169174a0e77a54c0ce650f87b48.tar.bz2
android_bionic-a5c16983a65e2169174a0e77a54c0ce650f87b48.zip
Merge "Fix iswlower/iswupper."
-rw-r--r--libc/bionic/wctype.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/libc/bionic/wctype.cpp b/libc/bionic/wctype.cpp
index 3a880d33f..cd8c39b0b 100644
--- a/libc/bionic/wctype.cpp
+++ b/libc/bionic/wctype.cpp
@@ -40,8 +40,12 @@ int iswalnum(wint_t wc) { return iswdigit(wc) || iswalpha(wc); }
int iswblank(wint_t wc) { return isblank(wc); }
int iswdigit(wint_t wc) { return isdigit(wc); }
int iswgraph(wint_t wc) { return !iswspace(wc) && iswprint(wc); }
-int iswlower(wint_t wc) { return towlower(wc) != wc; }
-int iswupper(wint_t wc) { return towupper(wc) != wc; }
+int iswlower(wint_t wc) {
+ return towlower(wc) == wc && !(iswcntrl(wc) || iswdigit(wc) || iswpunct(wc) || iswspace(wc));
+}
+int iswupper(wint_t wc) {
+ return towupper(wc) == wc && !(iswcntrl(wc) || iswdigit(wc) || iswpunct(wc) || iswspace(wc));
+}
int iswxdigit(wint_t wc) { return isxdigit(wc); }
// TODO: need proper implementations of these.