@@ -645,40 +645,70 @@ ucs_wcwidth(pg_wchar ucs)
645
645
{
646
646
/* sorted list of non-overlapping intervals of non-spacing characters */
647
647
static const struct mbinterval combining []= {
648
- {0x0300 ,0x034E }, {0x0360 ,0x0362 }, {0x0483 ,0x0486 },
649
- {0x0488 ,0x0489 }, {0x0591 ,0x05A1 }, {0x05A3 ,0x05B9 },
650
- {0x05BB ,0x05BD }, {0x05BF ,0x05BF }, {0x05C1 ,0x05C2 },
651
- {0x05C4 ,0x05C4 }, {0x064B ,0x0655 }, {0x0670 ,0x0670 },
652
- {0x06D6 ,0x06E4 }, {0x06E7 ,0x06E8 }, {0x06EA ,0x06ED },
653
- {0x070F ,0x070F }, {0x0711 ,0x0711 }, {0x0730 ,0x074A },
654
- {0x07A6 ,0x07B0 }, {0x0901 ,0x0902 }, {0x093C ,0x093C },
655
- {0x0941 ,0x0948 }, {0x094D ,0x094D }, {0x0951 ,0x0954 },
656
- {0x0962 ,0x0963 }, {0x0981 ,0x0981 }, {0x09BC ,0x09BC },
657
- {0x09C1 ,0x09C4 }, {0x09CD ,0x09CD }, {0x09E2 ,0x09E3 },
658
- {0x0A02 ,0x0A02 }, {0x0A3C ,0x0A3C }, {0x0A41 ,0x0A42 },
659
- {0x0A47 ,0x0A48 }, {0x0A4B ,0x0A4D }, {0x0A70 ,0x0A71 },
660
- {0x0A81 ,0x0A82 }, {0x0ABC ,0x0ABC }, {0x0AC1 ,0x0AC5 },
661
- {0x0AC7 ,0x0AC8 }, {0x0ACD ,0x0ACD }, {0x0B01 ,0x0B01 },
662
- {0x0B3C ,0x0B3C }, {0x0B3F ,0x0B3F }, {0x0B41 ,0x0B43 },
663
- {0x0B4D ,0x0B4D }, {0x0B56 ,0x0B56 }, {0x0B82 ,0x0B82 },
664
- {0x0BC0 ,0x0BC0 }, {0x0BCD ,0x0BCD }, {0x0C3E ,0x0C40 },
665
- {0x0C46 ,0x0C48 }, {0x0C4A ,0x0C4D }, {0x0C55 ,0x0C56 },
648
+ {0x0300 ,0x036F }, {0x0483 ,0x0489 }, {0x0591 ,0x05BD },
649
+ {0x05BF ,0x05BF }, {0x05C1 ,0x05C2 }, {0x05C4 ,0x05C5 },
650
+ {0x05C7 ,0x05C7 }, {0x0610 ,0x061A }, {0x064B ,0x065F },
651
+ {0x0670 ,0x0670 }, {0x06D6 ,0x06DC }, {0x06DF ,0x06E4 },
652
+ {0x06E7 ,0x06E8 }, {0x06EA ,0x06ED }, {0x0711 ,0x0711 },
653
+ {0x0730 ,0x074A }, {0x07A6 ,0x07B0 }, {0x07EB ,0x07F3 },
654
+ {0x07FD ,0x07FD }, {0x0816 ,0x0819 }, {0x081B ,0x0823 },
655
+ {0x0825 ,0x0827 }, {0x0829 ,0x082D }, {0x0859 ,0x085B },
656
+ {0x08D3 ,0x08E1 }, {0x08E3 ,0x0902 }, {0x093A ,0x093A },
657
+ {0x093C ,0x093C }, {0x0941 ,0x0948 }, {0x094D ,0x094D },
658
+ {0x0951 ,0x0957 }, {0x0962 ,0x0963 }, {0x0981 ,0x0981 },
659
+ {0x09BC ,0x09BC }, {0x09C1 ,0x09C4 }, {0x09CD ,0x09CD },
660
+ {0x09E2 ,0x09E3 }, {0x09FE ,0x0A02 }, {0x0A3C ,0x0A3C },
661
+ {0x0A41 ,0x0A51 }, {0x0A70 ,0x0A71 }, {0x0A75 ,0x0A75 },
662
+ {0x0A81 ,0x0A82 }, {0x0ABC ,0x0ABC }, {0x0AC1 ,0x0AC8 },
663
+ {0x0ACD ,0x0ACD }, {0x0AE2 ,0x0AE3 }, {0x0AFA ,0x0B01 },
664
+ {0x0B3C ,0x0B3C }, {0x0B3F ,0x0B3F }, {0x0B41 ,0x0B44 },
665
+ {0x0B4D ,0x0B56 }, {0x0B62 ,0x0B63 }, {0x0B82 ,0x0B82 },
666
+ {0x0BC0 ,0x0BC0 }, {0x0BCD ,0x0BCD }, {0x0C00 ,0x0C00 },
667
+ {0x0C04 ,0x0C04 }, {0x0C3E ,0x0C40 }, {0x0C46 ,0x0C56 },
668
+ {0x0C62 ,0x0C63 }, {0x0C81 ,0x0C81 }, {0x0CBC ,0x0CBC },
666
669
{0x0CBF ,0x0CBF }, {0x0CC6 ,0x0CC6 }, {0x0CCC ,0x0CCD },
667
- {0x0D41 ,0x0D43 }, {0x0D4D ,0x0D4D }, {0x0DCA ,0x0DCA },
668
- {0x0DD2 ,0x0DD4 }, {0x0DD6 ,0x0DD6 }, {0x0E31 ,0x0E31 },
670
+ {0x0CE2 ,0x0CE3 }, {0x0D00 ,0x0D01 }, {0x0D3B ,0x0D3C },
671
+ {0x0D41 ,0x0D44 }, {0x0D4D ,0x0D4D }, {0x0D62 ,0x0D63 },
672
+ {0x0DCA ,0x0DCA }, {0x0DD2 ,0x0DD6 }, {0x0E31 ,0x0E31 },
669
673
{0x0E34 ,0x0E3A }, {0x0E47 ,0x0E4E }, {0x0EB1 ,0x0EB1 },
670
- {0x0EB4 ,0x0EB9 }, {0x0EBB ,0x0EBC }, {0x0EC8 ,0x0ECD },
671
- {0x0F18 ,0x0F19 }, {0x0F35 ,0x0F35 }, {0x0F37 ,0x0F37 },
672
- {0x0F39 ,0x0F39 }, {0x0F71 ,0x0F7E }, {0x0F80 ,0x0F84 },
673
- {0x0F86 ,0x0F87 }, {0x0F90 ,0x0F97 }, {0x0F99 ,0x0FBC },
674
- {0x0FC6 ,0x0FC6 }, {0x102D ,0x1030 }, {0x1032 ,0x1032 },
675
- {0x1036 ,0x1037 }, {0x1039 ,0x1039 }, {0x1058 ,0x1059 },
676
- {0x1160 ,0x11FF }, {0x17B7 ,0x17BD }, {0x17C6 ,0x17C6 },
677
- {0x17C9 ,0x17D3 }, {0x180B ,0x180E }, {0x18A9 ,0x18A9 },
678
- {0x200B ,0x200F }, {0x202A ,0x202E }, {0x206A ,0x206F },
679
- {0x20D0 ,0x20E3 }, {0x302A ,0x302F }, {0x3099 ,0x309A },
680
- {0xFB1E ,0xFB1E }, {0xFE20 ,0xFE23 }, {0xFEFF ,0xFEFF },
681
- {0xFFF9 ,0xFFFB }
674
+ {0x0EB4 ,0x0EBC }, {0x0EC8 ,0x0ECD }, {0x0F18 ,0x0F19 },
675
+ {0x0F35 ,0x0F35 }, {0x0F37 ,0x0F37 }, {0x0F39 ,0x0F39 },
676
+ {0x0F71 ,0x0F7E }, {0x0F80 ,0x0F84 }, {0x0F86 ,0x0F87 },
677
+ {0x0F8D ,0x0FBC }, {0x0FC6 ,0x0FC6 }, {0x102D ,0x1030 },
678
+ {0x1032 ,0x1037 }, {0x1039 ,0x103A }, {0x103D ,0x103E },
679
+ {0x1058 ,0x1059 }, {0x105E ,0x1060 }, {0x1071 ,0x1074 },
680
+ {0x1082 ,0x1082 }, {0x1085 ,0x1086 }, {0x108D ,0x108D },
681
+ {0x109D ,0x109D }, {0x135D ,0x135F }, {0x1712 ,0x1714 },
682
+ {0x1732 ,0x1734 }, {0x1752 ,0x1753 }, {0x1772 ,0x1773 },
683
+ {0x17B4 ,0x17B5 }, {0x17B7 ,0x17BD }, {0x17C6 ,0x17C6 },
684
+ {0x17C9 ,0x17D3 }, {0x17DD ,0x17DD }, {0x180B ,0x180D },
685
+ {0x1885 ,0x1886 }, {0x18A9 ,0x18A9 }, {0x1920 ,0x1922 },
686
+ {0x1927 ,0x1928 }, {0x1932 ,0x1932 }, {0x1939 ,0x193B },
687
+ {0x1A17 ,0x1A18 }, {0x1A1B ,0x1A1B }, {0x1A56 ,0x1A56 },
688
+ {0x1A58 ,0x1A60 }, {0x1A62 ,0x1A62 }, {0x1A65 ,0x1A6C },
689
+ {0x1A73 ,0x1A7F }, {0x1AB0 ,0x1B03 }, {0x1B34 ,0x1B34 },
690
+ {0x1B36 ,0x1B3A }, {0x1B3C ,0x1B3C }, {0x1B42 ,0x1B42 },
691
+ {0x1B6B ,0x1B73 }, {0x1B80 ,0x1B81 }, {0x1BA2 ,0x1BA5 },
692
+ {0x1BA8 ,0x1BA9 }, {0x1BAB ,0x1BAD }, {0x1BE6 ,0x1BE6 },
693
+ {0x1BE8 ,0x1BE9 }, {0x1BED ,0x1BED }, {0x1BEF ,0x1BF1 },
694
+ {0x1C2C ,0x1C33 }, {0x1C36 ,0x1C37 }, {0x1CD0 ,0x1CD2 },
695
+ {0x1CD4 ,0x1CE0 }, {0x1CE2 ,0x1CE8 }, {0x1CED ,0x1CED },
696
+ {0x1CF4 ,0x1CF4 }, {0x1CF8 ,0x1CF9 }, {0x1DC0 ,0x1DFF },
697
+ {0x20D0 ,0x20F0 }, {0x2CEF ,0x2CF1 }, {0x2D7F ,0x2D7F },
698
+ {0x2DE0 ,0x2DFF }, {0x302A ,0x302D }, {0x3099 ,0x309A },
699
+ {0xA66F ,0xA672 }, {0xA674 ,0xA67D }, {0xA69E ,0xA69F },
700
+ {0xA6F0 ,0xA6F1 }, {0xA802 ,0xA802 }, {0xA806 ,0xA806 },
701
+ {0xA80B ,0xA80B }, {0xA825 ,0xA826 }, {0xA8C4 ,0xA8C5 },
702
+ {0xA8E0 ,0xA8F1 }, {0xA8FF ,0xA8FF }, {0xA926 ,0xA92D },
703
+ {0xA947 ,0xA951 }, {0xA980 ,0xA982 }, {0xA9B3 ,0xA9B3 },
704
+ {0xA9B6 ,0xA9B9 }, {0xA9BC ,0xA9BD }, {0xA9E5 ,0xA9E5 },
705
+ {0xAA29 ,0xAA2E }, {0xAA31 ,0xAA32 }, {0xAA35 ,0xAA36 },
706
+ {0xAA43 ,0xAA43 }, {0xAA4C ,0xAA4C }, {0xAA7C ,0xAA7C },
707
+ {0xAAB0 ,0xAAB0 }, {0xAAB2 ,0xAAB4 }, {0xAAB7 ,0xAAB8 },
708
+ {0xAABE ,0xAABF }, {0xAAC1 ,0xAAC1 }, {0xAAEC ,0xAAED },
709
+ {0xAAF6 ,0xAAF6 }, {0xABE5 ,0xABE5 }, {0xABE8 ,0xABE8 },
710
+ {0xABED ,0xABED }, {0xFB1E ,0xFB1E }, {0xFE00 ,0xFE0F },
711
+ {0xFE20 ,0xFE2F },
682
712
};
683
713
684
714
/* test for 8-bit control characters */