diff options
author | tjr <tjr@FreeBSD.org> | 2004-08-12 12:19:11 +0000 |
---|---|---|
committer | tjr <tjr@FreeBSD.org> | 2004-08-12 12:19:11 +0000 |
commit | 84b5d3520fd89553036a69a6c1e0481f0b65d8ea (patch) | |
tree | 802ec2593ce866aa0d0473bfc2cd7c04d0f9cd00 /lib/libc | |
parent | 0340faafa1e860a32729f20649b0e508d257006e (diff) | |
download | FreeBSD-src-84b5d3520fd89553036a69a6c1e0481f0b65d8ea.zip FreeBSD-src-84b5d3520fd89553036a69a6c1e0481f0b65d8ea.tar.gz |
Implement wcwidth() as an inline function.
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/locale/wcwidth.c | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/lib/libc/locale/wcwidth.c b/lib/libc/locale/wcwidth.c index 9706430..f7dabab 100644 --- a/lib/libc/locale/wcwidth.c +++ b/lib/libc/locale/wcwidth.c @@ -43,21 +43,12 @@ __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 */ +#undef wcwidth int wcwidth(wchar_t wc) { - unsigned int x; - if (wc == L'\0') - return (0); - - x = (unsigned int)__maskrune(wc, _CTYPE_SWM|_CTYPE_R); - if ((x & _CTYPE_SWM) != 0) - return ((x & _CTYPE_SWM) >> _CTYPE_SWS); - return ((x & _CTYPE_R) != 0 ? 1 : -1); + return (__wcwidth(wc)); } |