diff options
author | Denys Vlasenko | 2019-07-23 11:26:54 +0200 |
---|---|---|
committer | Denys Vlasenko | 2019-07-23 11:26:54 +0200 |
commit | dac0a7d2341368a1b8e06d1a0c5ca0c76e90b6f9 (patch) | |
tree | 1393f7feaca8f2833eb30a1d47c61c4503a92bf9 /libbb/unicode.c | |
parent | 4767a5375e6681a962efadb19cb457fd4b9ea278 (diff) | |
download | busybox-dac0a7d2341368a1b8e06d1a0c5ca0c76e90b6f9.zip busybox-dac0a7d2341368a1b8e06d1a0c5ca0c76e90b6f9.tar.gz |
unicode: code shrink in character width determination
function old new delta
bb_wcwidth 267 238 -29
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb/unicode.c')
-rw-r--r-- | libbb/unicode.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libbb/unicode.c b/libbb/unicode.c index 89d4217..79481f1 100644 --- a/libbb/unicode.c +++ b/libbb/unicode.c @@ -674,14 +674,20 @@ int FAST_FUNC wcwidth(unsigned ucs) ( (/*ucs >= 0x1100 &&*/ ucs <= 0x115f) /* Hangul Jamo init. consonants */ || ucs == 0x2329 /* left-pointing angle bracket; also CJK punct. char */ || ucs == 0x232a /* right-pointing angle bracket; also CJK punct. char */ +# if CONFIG_LAST_SUPPORTED_WCHAR >= 0x2e80 || (ucs >= 0x2e80 && ucs <= 0xa4cf && ucs != 0x303f) /* CJK ... Yi */ +# endif # if CONFIG_LAST_SUPPORTED_WCHAR >= 0xac00 || (ucs >= 0xac00 && ucs <= 0xd7a3) /* Hangul Syllables */ +# endif +# if CONFIG_LAST_SUPPORTED_WCHAR >= 0xf900 || (ucs >= 0xf900 && ucs <= 0xfaff) /* CJK Compatibility Ideographs */ || (ucs >= 0xfe10 && ucs <= 0xfe19) /* Vertical forms */ || (ucs >= 0xfe30 && ucs <= 0xfe6f) /* CJK Compatibility Forms */ || (ucs >= 0xff00 && ucs <= 0xff60) /* Fullwidth Forms */ || (ucs >= 0xffe0 && ucs <= 0xffe6) +# endif +# if CONFIG_LAST_SUPPORTED_WCHAR >= 0x20000 || ((ucs >> 17) == (2 >> 1)) /* 20000..3ffff: Supplementary and Tertiary Ideographic Planes */ # endif ); |