diff options
| author | Carmelo Amoroso <carmelo.amoroso@st.com> | 2008-12-02 17:15:35 +0000 |
|---|---|---|
| committer | Carmelo Amoroso <carmelo.amoroso@st.com> | 2008-12-02 17:15:35 +0000 |
| commit | 22904520b64daed2a27e5b29d995f8705a367518 (patch) | |
| tree | a7157bf4669f3b0b4189f4e40662eadd86a5937a /libc | |
| parent | 36bc0152fe584b13367d05681fbef346696d6b04 (diff) | |
| download | uClibc-alpine-22904520b64daed2a27e5b29d995f8705a367518.tar.bz2 uClibc-alpine-22904520b64daed2a27e5b29d995f8705a367518.tar.xz | |
Fix wcswidth function when LOCALE support is disabled
while keeping WCHAR support enabled. This solves two
testcases: tst_wcwidth and tst_wcswidth.
Fix dat_iswctype.c fiinput file: character 0x80 is not
a control character: it fixes tst_iswctype test.
Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
Diffstat (limited to 'libc')
| -rw-r--r-- | libc/misc/wchar/wchar.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libc/misc/wchar/wchar.c b/libc/misc/wchar/wchar.c index 93f5ada95..682f24fe0 100644 --- a/libc/misc/wchar/wchar.c +++ b/libc/misc/wchar/wchar.c @@ -1143,6 +1143,13 @@ int wcswidth(const wchar_t *pwcs, size_t n) { int count; wchar_t wc; + size_t i; + + for (i = 0 ; (i < n) && pwcs[i] ; i++) { + if (pwcs[i] != (pwcs[i] & 0x7f)) { + return -1; + } + } for (count = 0 ; n && (wc = *pwcs++) ; n--) { if (wc <= 0xff) { |
