unicode: code shrink in character width determination
authorDenys Vlasenko <vda.linux@googlemail.com>
Tue, 23 Jul 2019 09:26:54 +0000 (11:26 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Tue, 23 Jul 2019 09:26:54 +0000 (11:26 +0200)
function                                             old     new   delta
bb_wcwidth                                           267     238     -29

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
libbb/unicode.c

index 89d42179b48c280900739904b976bc925c73e18d..79481f159a2fe33f488df0e0e494a12f6216661d 100644 (file)
@@ -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
                );