diff options
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/locale/wcwidth.c | 4 |
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)); } |