summaryrefslogtreecommitdiff
path: root/lib/libc/string
diff options
context:
space:
mode:
authortnozaki <tnozaki@NetBSD.org>2008-08-12 21:59:27 +0000
committertnozaki <tnozaki@NetBSD.org>2008-08-12 21:59:27 +0000
commitcd0f2012d3670c41aa369d6cac3ea509cff20cb2 (patch)
treeff7cdb9d1de5dfad46ed8f16c9a4463082674884 /lib/libc/string
parent73651b99df2f31767a9dd4d59db9962a34e3cdbb (diff)
SUSv3 says, if not printable wide-character exists, return -1.
Diffstat (limited to 'lib/libc/string')
-rw-r--r--lib/libc/string/wcswidth.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/libc/string/wcswidth.c b/lib/libc/string/wcswidth.c
index 54fc98a3159..801089ef07f 100644
--- a/lib/libc/string/wcswidth.c
+++ b/lib/libc/string/wcswidth.c
@@ -1,4 +1,4 @@
-/* $NetBSD: wcswidth.c,v 1.4 2008/08/12 20:51:25 tnozaki Exp $ */
+/* $NetBSD: wcswidth.c,v 1.5 2008/08/12 21:59:27 tnozaki Exp $ */
/*-
* Copyright (c)1999 Citrus Project,
@@ -30,7 +30,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: wcswidth.c,v 1.4 2008/08/12 20:51:25 tnozaki Exp $");
+__RCSID("$NetBSD: wcswidth.c,v 1.5 2008/08/12 21:59:27 tnozaki Exp $");
#endif /* LIBC_SCCS and not lint */
#include "namespace.h"
@@ -49,8 +49,9 @@ wcswidth(s, n)
w = 0;
while (n && *s) {
x = wcwidth(*s);
- if (x > 0)
- w += x;
+ if (x < 0)
+ return -1;
+ w += x;
s++;
n--;
}