summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/locale/wcwidth.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/libc/locale/wcwidth.c b/lib/libc/locale/wcwidth.c
index 2be3bcb..dab0808 100644
--- a/lib/libc/locale/wcwidth.c
+++ b/lib/libc/locale/wcwidth.c
@@ -45,12 +45,16 @@ __FBSDID("$FreeBSD$");
#include <wchar.h>
#include <wctype.h>
+#define _CTYPE_SWM 0xe0000000L /* Mask to get screen width data */
+#define _CTYPE_SWS 30 /* Bits to shift to get width */
+
int
wcwidth(wc)
wchar_t wc;
{
int width = __maskrune(wc, _CTYPE_SWM);
+ /* 0 is autowidth (default) */
return (width ? (int)((unsigned)width >> _CTYPE_SWS)
: (iswprint(wc) ? 1 : -1));
}
OpenPOWER on IntegriCloud