summaryrefslogtreecommitdiff
path: root/libbb/unicode.c
diff options
context:
space:
mode:
authorDenys Vlasenko2019-07-23 11:26:54 +0200
committerDenys Vlasenko2019-07-23 11:26:54 +0200
commitdac0a7d2341368a1b8e06d1a0c5ca0c76e90b6f9 (patch)
tree1393f7feaca8f2833eb30a1d47c61c4503a92bf9 /libbb/unicode.c
parent4767a5375e6681a962efadb19cb457fd4b9ea278 (diff)
downloadbusybox-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.c6
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
);