From 8596cf884602b7cb682a771a9518b02de2cd27a4 Mon Sep 17 00:00:00 2001
From: Carmelo Amoroso <carmelo.amoroso@st.com>
Date: Tue, 2 Dec 2008 17:14:47 +0000
Subject: 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>
---
 libc/misc/wchar/wchar.c | 7 +++++++
 1 file changed, 7 insertions(+)

(limited to 'libc')

diff --git a/libc/misc/wchar/wchar.c b/libc/misc/wchar/wchar.c
index 23638ea8f..a28cd8f94 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) {
-- 
cgit v1.2.3