GetWidthFromCodepoint
Short summary
This function returns the width of a given unicode character. The widths whre calculated with a python function wcwidth for all codepoints that a width unequal to 1. A width of -1 means the character is not displayable. A width 0 means the character is a nonspacing combining mark. A width of 1 or 2 means the character will occupy one or two cells in a monospace font.
Attention: The actual width a character needs for displaying is always dependent on the used font, the fontsize and the rendering! The width this function returns is actually an estimation.
- Return type:
SINT
Parameters
| Name | Type | Comment | Kind |
|---|---|---|---|
| codePoint | POINTER TO UnicodeCodePoint | codepoint to process | input |
| width | SINT | with of the single codepoint | output |
Code
Declaration
FUNCTION GetWidthFromCodepoint :SINT
VAR_INPUT
(* codepoint to process *)
codePoint: POINTER TO UnicodeCodePoint;
END_VAR
VAR_OUTPUT
(* with of the single codepoint *)
width :SINT := 0;
END_VAR
Implementation
CASE codepoint^ OF
16#0001..16#001F:
width := -1; // 0001..001F
16#007F..16#009F:
width := -1; // 007F..009F
16#00AD:
width := 0; // 00AD
16#0300..16#036F:
width := 0; // 0300..036F
16#0483..16#0489:
width := 0; // 0483..0489
16#0591..16#05BD:
width := 0; // 0591..05BD
16#05BF:
width := 0; // 05BF
16#05C1..16#05C2:
width := 0; // 05C1..05C2
16#05C4..16#05C5:
width := 0; // 05C4..05C5
16#05C7:
width := 0; // 05C7
16#0600..16#0605:
width := 0; // 0600..0605
16#0610..16#061A:
width := 0; // 0610..061A
16#061C:
width := 0; // 061C
16#064B..16#065F:
width := 0; // 064B..065F
16#0670:
width := 0; // 0670
16#06D6..16#06DD:
width := 0; // 06D6..06DD
16#06DF..16#06E4:
width := 0; // 06DF..06E4
16#06E7..16#06E8:
width := 0; // 06E7..06E8
16#06EA..16#06ED:
width := 0; // 06EA..06ED
16#070F:
width := 0; // 070F
16#0711:
width := 0; // 0711
16#0730..16#074A:
width := 0; // 0730..074A
16#07A6..16#07B0:
width := 0; // 07A6..07B0
16#07EB..16#07F3:
width := 0; // 07EB..07F3
16#07FD:
width := 0; // 07FD
16#0816..16#0819:
width := 0; // 0816..0819
16#081B..16#0823:
width := 0; // 081B..0823
16#0825..16#0827:
width := 0; // 0825..0827
16#0829..16#082D:
width := 0; // 0829..082D
16#0859..16#085B:
width := 0; // 0859..085B
16#0890..16#0891:
width := 0; // 0890..0891
16#0898..16#089F:
width := 0; // 0898..089F
16#08CA..16#0903:
width := 0; // 08CA..0903
16#093A..16#093C:
width := 0; // 093A..093C
16#093E..16#094F:
width := 0; // 093E..094F
16#0951..16#0957:
width := 0; // 0951..0957
16#0962..16#0963:
width := 0; // 0962..0963
16#0981..16#0983:
width := 0; // 0981..0983
16#09BC:
width := 0; // 09BC
16#09BE..16#09C4:
width := 0; // 09BE..09C4
16#09C7..16#09C8:
width := 0; // 09C7..09C8
16#09CB..16#09CD:
width := 0; // 09CB..09CD
16#09D7:
width := 0; // 09D7
16#09E2..16#09E3:
width := 0; // 09E2..09E3
16#09FE:
width := 0; // 09FE
16#0A01..16#0A03:
width := 0; // 0A01..0A03
16#0A3C:
width := 0; // 0A3C
16#0A3E..16#0A42:
width := 0; // 0A3E..0A42
16#0A47..16#0A48:
width := 0; // 0A47..0A48
16#0A4B..16#0A4D:
width := 0; // 0A4B..0A4D
16#0A51:
width := 0; // 0A51
16#0A70..16#0A71:
width := 0; // 0A70..0A71
16#0A75:
width := 0; // 0A75
16#0A81..16#0A83:
width := 0; // 0A81..0A83
16#0ABC:
width := 0; // 0ABC
16#0ABE..16#0AC5:
width := 0; // 0ABE..0AC5
16#0AC7..16#0AC9:
width := 0; // 0AC7..0AC9
16#0ACB..16#0ACD:
width := 0; // 0ACB..0ACD
16#0AE2..16#0AE3:
width := 0; // 0AE2..0AE3
16#0AFA..16#0AFF:
width := 0; // 0AFA..0AFF
16#0B01..16#0B03:
width := 0; // 0B01..0B03
16#0B3C:
width := 0; // 0B3C
16#0B3E..16#0B44:
width := 0; // 0B3E..0B44
16#0B47..16#0B48:
width := 0; // 0B47..0B48
16#0B4B..16#0B4D:
width := 0; // 0B4B..0B4D
16#0B55..16#0B57:
width := 0; // 0B55..0B57
16#0B62..16#0B63:
width := 0; // 0B62..0B63
16#0B82:
width := 0; // 0B82
16#0BBE..16#0BC2:
width := 0; // 0BBE..0BC2
16#0BC6..16#0BC8:
width := 0; // 0BC6..0BC8
16#0BCA..16#0BCD:
width := 0; // 0BCA..0BCD
16#0BD7:
width := 0; // 0BD7
16#0C00..16#0C04:
width := 0; // 0C00..0C04
16#0C3C:
width := 0; // 0C3C
16#0C3E..16#0C44:
width := 0; // 0C3E..0C44
16#0C46..16#0C48:
width := 0; // 0C46..0C48
16#0C4A..16#0C4D:
width := 0; // 0C4A..0C4D
16#0C55..16#0C56:
width := 0; // 0C55..0C56
16#0C62..16#0C63:
width := 0; // 0C62..0C63
16#0C81..16#0C83:
width := 0; // 0C81..0C83
16#0CBC:
width := 0; // 0CBC
16#0CBE..16#0CC4:
width := 0; // 0CBE..0CC4
16#0CC6..16#0CC8:
width := 0; // 0CC6..0CC8
16#0CCA..16#0CCD:
width := 0; // 0CCA..0CCD
16#0CD5..16#0CD6:
width := 0; // 0CD5..0CD6
16#0CE2..16#0CE3:
width := 0; // 0CE2..0CE3
16#0CF3:
width := 0; // 0CF3
16#0D00..16#0D03:
width := 0; // 0D00..0D03
16#0D3B..16#0D3C:
width := 0; // 0D3B..0D3C
16#0D3E..16#0D44:
width := 0; // 0D3E..0D44
16#0D46..16#0D48:
width := 0; // 0D46..0D48
16#0D4A..16#0D4D:
width := 0; // 0D4A..0D4D
16#0D57:
width := 0; // 0D57
16#0D62..16#0D63:
width := 0; // 0D62..0D63
16#0D81..16#0D83:
width := 0; // 0D81..0D83
16#0DCA:
width := 0; // 0DCA
16#0DCF..16#0DD4:
width := 0; // 0DCF..0DD4
16#0DD6:
width := 0; // 0DD6
16#0DD8..16#0DDF:
width := 0; // 0DD8..0DDF
16#0DF2..16#0DF3:
width := 0; // 0DF2..0DF3
16#0E31:
width := 0; // 0E31
16#0E34..16#0E3A:
width := 0; // 0E34..0E3A
16#0E47..16#0E4E:
width := 0; // 0E47..0E4E
16#0EB1:
width := 0; // 0EB1
16#0EB4..16#0EBC:
width := 0; // 0EB4..0EBC
16#0EC8..16#0ECE:
width := 0; // 0EC8..0ECE
16#0F18..16#0F19:
width := 0; // 0F18..0F19
16#0F35:
width := 0; // 0F35
16#0F37:
width := 0; // 0F37
16#0F39:
width := 0; // 0F39
16#0F3E..16#0F3F:
width := 0; // 0F3E..0F3F
16#0F71..16#0F84:
width := 0; // 0F71..0F84
16#0F86..16#0F87:
width := 0; // 0F86..0F87
16#0F8D..16#0F97:
width := 0; // 0F8D..0F97
16#0F99..16#0FBC:
width := 0; // 0F99..0FBC
16#0FC6:
width := 0; // 0FC6
16#102B..16#103E:
width := 0; // 102B..103E
16#1056..16#1059:
width := 0; // 1056..1059
16#105E..16#1060:
width := 0; // 105E..1060
16#1062..16#1064:
width := 0; // 1062..1064
16#1067..16#106D:
width := 0; // 1067..106D
16#1071..16#1074:
width := 0; // 1071..1074
16#1082..16#108D:
width := 0; // 1082..108D
16#108F:
width := 0; // 108F
16#109A..16#109D:
width := 0; // 109A..109D
16#1100..16#115F:
width := 2; // 1100..115F
16#1160..16#11FF:
width := 0; // 1160..11FF
16#135D..16#135F:
width := 0; // 135D..135F
16#1712..16#1715:
width := 0; // 1712..1715
16#1732..16#1734:
width := 0; // 1732..1734
16#1752..16#1753:
width := 0; // 1752..1753
16#1772..16#1773:
width := 0; // 1772..1773
16#17B4..16#17D3:
width := 0; // 17B4..17D3
16#17DD:
width := 0; // 17DD
16#180B..16#180F:
width := 0; // 180B..180F
16#1885..16#1886:
width := 0; // 1885..1886
16#18A9:
width := 0; // 18A9
16#1920..16#192B:
width := 0; // 1920..192B
16#1930..16#193B:
width := 0; // 1930..193B
16#1A17..16#1A1B:
width := 0; // 1A17..1A1B
16#1A55..16#1A5E:
width := 0; // 1A55..1A5E
16#1A60..16#1A7C:
width := 0; // 1A60..1A7C
16#1A7F:
width := 0; // 1A7F
16#1AB0..16#1ACE:
width := 0; // 1AB0..1ACE
16#1B00..16#1B04:
width := 0; // 1B00..1B04
16#1B34..16#1B44:
width := 0; // 1B34..1B44
16#1B6B..16#1B73:
width := 0; // 1B6B..1B73
16#1B80..16#1B82:
width := 0; // 1B80..1B82
16#1BA1..16#1BAD:
width := 0; // 1BA1..1BAD
16#1BE6..16#1BF3:
width := 0; // 1BE6..1BF3
16#1C24..16#1C37:
width := 0; // 1C24..1C37
16#1CD0..16#1CD2:
width := 0; // 1CD0..1CD2
16#1CD4..16#1CE8:
width := 0; // 1CD4..1CE8
16#1CED:
width := 0; // 1CED
16#1CF4:
width := 0; // 1CF4
16#1CF7..16#1CF9:
width := 0; // 1CF7..1CF9
16#1DC0..16#1DFF:
width := 0; // 1DC0..1DFF
16#200B..16#200F:
width := 0; // 200B..200F
16#2028..16#202E:
width := 0; // 2028..202E
16#2060..16#2064:
width := 0; // 2060..2064
16#2066..16#206F:
width := 0; // 2066..206F
16#20D0..16#20F0:
width := 0; // 20D0..20F0
16#231A..16#231B:
width := 2; // 231A..231B
16#2329..16#232A:
width := 2; // 2329..232A
16#23E9..16#23EC:
width := 2; // 23E9..23EC
16#23F0:
width := 2; // 23F0
16#23F3:
width := 2; // 23F3
16#25FD..16#25FE:
width := 2; // 25FD..25FE
16#2614..16#2615:
width := 2; // 2614..2615
16#2648..16#2653:
width := 2; // 2648..2653
16#267F:
width := 2; // 267F
16#2693:
width := 2; // 2693
16#26A1:
width := 2; // 26A1
16#26AA..16#26AB:
width := 2; // 26AA..26AB
16#26BD..16#26BE:
width := 2; // 26BD..26BE
16#26C4..16#26C5:
width := 2; // 26C4..26C5
16#26CE:
width := 2; // 26CE
16#26D4:
width := 2; // 26D4
16#26EA:
width := 2; // 26EA
16#26F2..16#26F3:
width := 2; // 26F2..26F3
16#26F5:
width := 2; // 26F5
16#26FA:
width := 2; // 26FA
16#26FD:
width := 2; // 26FD
16#2705:
width := 2; // 2705
16#270A..16#270B:
width := 2; // 270A..270B
16#2728:
width := 2; // 2728
16#274C:
width := 2; // 274C
16#274E:
width := 2; // 274E
16#2753..16#2755:
width := 2; // 2753..2755
16#2757:
width := 2; // 2757
16#2795..16#2797:
width := 2; // 2795..2797
16#27B0:
width := 2; // 27B0
16#27BF:
width := 2; // 27BF
16#2B1B..16#2B1C:
width := 2; // 2B1B..2B1C
16#2B50:
width := 2; // 2B50
16#2B55:
width := 2; // 2B55
16#2CEF..16#2CF1:
width := 0; // 2CEF..2CF1
16#2D7F:
width := 0; // 2D7F
16#2DE0..16#2DFF:
width := 0; // 2DE0..2DFF
16#2E80..16#2E99:
width := 2; // 2E80..2E99
16#2E9B..16#2EF3:
width := 2; // 2E9B..2EF3
16#2F00..16#2FD5:
width := 2; // 2F00..2FD5
16#2FF0..16#3029:
width := 2; // 2FF0..3029
16#302A..16#302F:
width := 0; // 302A..302F
16#3030..16#303E:
width := 2; // 3030..303E
16#3041..16#3096:
width := 2; // 3041..3096
16#3099..16#309A:
width := 0; // 3099..309A
16#309B..16#30FF:
width := 2; // 309B..30FF
16#3105..16#312F:
width := 2; // 3105..312F
16#3131..16#318E:
width := 2; // 3131..318E
16#3190..16#31E3:
width := 2; // 3190..31E3
16#31EF..16#321E:
width := 2; // 31EF..321E
16#3220..16#3247:
width := 2; // 3220..3247
16#3250..16#4DBF:
width := 2; // 3250..4DBF
16#4E00..16#A48C:
width := 2; // 4E00..A48C
16#A490..16#A4C6:
width := 2; // A490..A4C6
16#A66F..16#A672:
width := 0; // A66F..A672
16#A674..16#A67D:
width := 0; // A674..A67D
16#A69E..16#A69F:
width := 0; // A69E..A69F
16#A6F0..16#A6F1:
width := 0; // A6F0..A6F1
16#A802:
width := 0; // A802
16#A806:
width := 0; // A806
16#A80B:
width := 0; // A80B
16#A823..16#A827:
width := 0; // A823..A827
16#A82C:
width := 0; // A82C
16#A880..16#A881:
width := 0; // A880..A881
16#A8B4..16#A8C5:
width := 0; // A8B4..A8C5
16#A8E0..16#A8F1:
width := 0; // A8E0..A8F1
16#A8FF:
width := 0; // A8FF
16#A926..16#A92D:
width := 0; // A926..A92D
16#A947..16#A953:
width := 0; // A947..A953
16#A960..16#A97C:
width := 2; // A960..A97C
16#A980..16#A983:
width := 0; // A980..A983
16#A9B3..16#A9C0:
width := 0; // A9B3..A9C0
16#A9E5:
width := 0; // A9E5
16#AA29..16#AA36:
width := 0; // AA29..AA36
16#AA43:
width := 0; // AA43
16#AA4C..16#AA4D:
width := 0; // AA4C..AA4D
16#AA7B..16#AA7D:
width := 0; // AA7B..AA7D
16#AAB0:
width := 0; // AAB0
16#AAB2..16#AAB4:
width := 0; // AAB2..AAB4
16#AAB7..16#AAB8:
width := 0; // AAB7..AAB8
16#AABE..16#AABF:
width := 0; // AABE..AABF
16#AAC1:
width := 0; // AAC1
16#AAEB..16#AAEF:
width := 0; // AAEB..AAEF
16#AAF5..16#AAF6:
width := 0; // AAF5..AAF6
16#ABE3..16#ABEA:
width := 0; // ABE3..ABEA
16#ABEC..16#ABED:
width := 0; // ABEC..ABED
16#AC00..16#D7A3:
width := 2; // AC00..D7A3
16#D7B0..16#D7FF:
width := 0; // D7B0..D7FF
16#F900..16#FAFF:
width := 2; // F900..FAFF
16#FB1E:
width := 0; // FB1E
16#FE00..16#FE0F:
width := 0; // FE00..FE0F
16#FE10..16#FE19:
width := 2; // FE10..FE19
16#FE20..16#FE2F:
width := 0; // FE20..FE2F
16#FE30..16#FE52:
width := 2; // FE30..FE52
16#FE54..16#FE66:
width := 2; // FE54..FE66
16#FE68..16#FE6B:
width := 2; // FE68..FE6B
16#FEFF:
width := 0; // FEFF
16#FF01..16#FF60:
width := 2; // FF01..FF60
16#FFE0..16#FFE6:
width := 2; // FFE0..FFE6
16#FFF9..16#FFFB:
width := 0; // FFF9..FFFB
16#101FD:
width := 0; // 101FD
16#102E0:
width := 0; // 102E0
16#10376..16#1037A:
width := 0; // 10376..1037A
16#10A01..16#10A03:
width := 0; // 10A01..10A03
16#10A05..16#10A06:
width := 0; // 10A05..10A06
16#10A0C..16#10A0F:
width := 0; // 10A0C..10A0F
16#10A38..16#10A3A:
width := 0; // 10A38..10A3A
16#10A3F:
width := 0; // 10A3F
16#10AE5..16#10AE6:
width := 0; // 10AE5..10AE6
16#10D24..16#10D27:
width := 0; // 10D24..10D27
16#10EAB..16#10EAC:
width := 0; // 10EAB..10EAC
16#10EFD..16#10EFF:
width := 0; // 10EFD..10EFF
16#10F46..16#10F50:
width := 0; // 10F46..10F50
16#10F82..16#10F85:
width := 0; // 10F82..10F85
16#11000..16#11002:
width := 0; // 11000..11002
16#11038..16#11046:
width := 0; // 11038..11046
16#11070:
width := 0; // 11070
16#11073..16#11074:
width := 0; // 11073..11074
16#1107F..16#11082:
width := 0; // 1107F..11082
16#110B0..16#110BA:
width := 0; // 110B0..110BA
16#110BD:
width := 0; // 110BD
16#110C2:
width := 0; // 110C2
16#110CD:
width := 0; // 110CD
16#11100..16#11102:
width := 0; // 11100..11102
16#11127..16#11134:
width := 0; // 11127..11134
16#11145..16#11146:
width := 0; // 11145..11146
16#11173:
width := 0; // 11173
16#11180..16#11182:
width := 0; // 11180..11182
16#111B3..16#111C0:
width := 0; // 111B3..111C0
16#111C9..16#111CC:
width := 0; // 111C9..111CC
16#111CE..16#111CF:
width := 0; // 111CE..111CF
16#1122C..16#11237:
width := 0; // 1122C..11237
16#1123E:
width := 0; // 1123E
16#11241:
width := 0; // 11241
16#112DF..16#112EA:
width := 0; // 112DF..112EA
16#11300..16#11303:
width := 0; // 11300..11303
16#1133B..16#1133C:
width := 0; // 1133B..1133C
16#1133E..16#11344:
width := 0; // 1133E..11344
16#11347..16#11348:
width := 0; // 11347..11348
16#1134B..16#1134D:
width := 0; // 1134B..1134D
16#11357:
width := 0; // 11357
16#11362..16#11363:
width := 0; // 11362..11363
16#11366..16#1136C:
width := 0; // 11366..1136C
16#11370..16#11374:
width := 0; // 11370..11374
16#11435..16#11446:
width := 0; // 11435..11446
16#1145E:
width := 0; // 1145E
16#114B0..16#114C3:
width := 0; // 114B0..114C3
16#115AF..16#115B5:
width := 0; // 115AF..115B5
16#115B8..16#115C0:
width := 0; // 115B8..115C0
16#115DC..16#115DD:
width := 0; // 115DC..115DD
16#11630..16#11640:
width := 0; // 11630..11640
16#116AB..16#116B7:
width := 0; // 116AB..116B7
16#1171D..16#1172B:
width := 0; // 1171D..1172B
16#1182C..16#1183A:
width := 0; // 1182C..1183A
16#11930..16#11935:
width := 0; // 11930..11935
16#11937..16#11938:
width := 0; // 11937..11938
16#1193B..16#1193E:
width := 0; // 1193B..1193E
16#11940:
width := 0; // 11940
16#11942..16#11943:
width := 0; // 11942..11943
16#119D1..16#119D7:
width := 0; // 119D1..119D7
16#119DA..16#119E0:
width := 0; // 119DA..119E0
16#119E4:
width := 0; // 119E4
16#11A01..16#11A0A:
width := 0; // 11A01..11A0A
16#11A33..16#11A39:
width := 0; // 11A33..11A39
16#11A3B..16#11A3E:
width := 0; // 11A3B..11A3E
16#11A47:
width := 0; // 11A47
16#11A51..16#11A5B:
width := 0; // 11A51..11A5B
16#11A8A..16#11A99:
width := 0; // 11A8A..11A99
16#11C2F..16#11C36:
width := 0; // 11C2F..11C36
16#11C38..16#11C3F:
width := 0; // 11C38..11C3F
16#11C92..16#11CA7:
width := 0; // 11C92..11CA7
16#11CA9..16#11CB6:
width := 0; // 11CA9..11CB6
16#11D31..16#11D36:
width := 0; // 11D31..11D36
16#11D3A:
width := 0; // 11D3A
16#11D3C..16#11D3D:
width := 0; // 11D3C..11D3D
16#11D3F..16#11D45:
width := 0; // 11D3F..11D45
16#11D47:
width := 0; // 11D47
16#11D8A..16#11D8E:
width := 0; // 11D8A..11D8E
16#11D90..16#11D91:
width := 0; // 11D90..11D91
16#11D93..16#11D97:
width := 0; // 11D93..11D97
16#11EF3..16#11EF6:
width := 0; // 11EF3..11EF6
16#11F00..16#11F01:
width := 0; // 11F00..11F01
16#11F03:
width := 0; // 11F03
16#11F34..16#11F3A:
width := 0; // 11F34..11F3A
16#11F3E..16#11F42:
width := 0; // 11F3E..11F42
16#13430..16#13440:
width := 0; // 13430..13440
16#13447..16#13455:
width := 0; // 13447..13455
16#16AF0..16#16AF4:
width := 0; // 16AF0..16AF4
16#16B30..16#16B36:
width := 0; // 16B30..16B36
16#16F4F:
width := 0; // 16F4F
16#16F51..16#16F87:
width := 0; // 16F51..16F87
16#16F8F..16#16F92:
width := 0; // 16F8F..16F92
16#16FE0..16#16FE3:
width := 2; // 16FE0..16FE3
16#16FE4:
width := 0; // 16FE4
16#16FF0..16#16FF1:
width := 0; // 16FF0..16FF1
16#17000..16#187F7:
width := 2; // 17000..187F7
16#18800..16#18CD5:
width := 2; // 18800..18CD5
16#18D00..16#18D08:
width := 2; // 18D00..18D08
16#1AFF0..16#1AFF3:
width := 2; // 1AFF0..1AFF3
16#1AFF5..16#1AFFB:
width := 2; // 1AFF5..1AFFB
16#1AFFD..16#1AFFE:
width := 2; // 1AFFD..1AFFE
16#1B000..16#1B122:
width := 2; // 1B000..1B122
16#1B132:
width := 2; // 1B132
16#1B150..16#1B152:
width := 2; // 1B150..1B152
16#1B155:
width := 2; // 1B155
16#1B164..16#1B167:
width := 2; // 1B164..1B167
16#1B170..16#1B2FB:
width := 2; // 1B170..1B2FB
16#1BC9D..16#1BC9E:
width := 0; // 1BC9D..1BC9E
16#1BCA0..16#1BCA3:
width := 0; // 1BCA0..1BCA3
16#1CF00..16#1CF2D:
width := 0; // 1CF00..1CF2D
16#1CF30..16#1CF46:
width := 0; // 1CF30..1CF46
16#1D165..16#1D169:
width := 0; // 1D165..1D169
16#1D16D..16#1D182:
width := 0; // 1D16D..1D182
16#1D185..16#1D18B:
width := 0; // 1D185..1D18B
16#1D1AA..16#1D1AD:
width := 0; // 1D1AA..1D1AD
16#1D242..16#1D244:
width := 0; // 1D242..1D244
16#1DA00..16#1DA36:
width := 0; // 1DA00..1DA36
16#1DA3B..16#1DA6C:
width := 0; // 1DA3B..1DA6C
16#1DA75:
width := 0; // 1DA75
16#1DA84:
width := 0; // 1DA84
16#1DA9B..16#1DA9F:
width := 0; // 1DA9B..1DA9F
16#1DAA1..16#1DAAF:
width := 0; // 1DAA1..1DAAF
16#1E000..16#1E006:
width := 0; // 1E000..1E006
16#1E008..16#1E018:
width := 0; // 1E008..1E018
16#1E01B..16#1E021:
width := 0; // 1E01B..1E021
16#1E023..16#1E024:
width := 0; // 1E023..1E024
16#1E026..16#1E02A:
width := 0; // 1E026..1E02A
16#1E08F:
width := 0; // 1E08F
16#1E130..16#1E136:
width := 0; // 1E130..1E136
16#1E2AE:
width := 0; // 1E2AE
16#1E2EC..16#1E2EF:
width := 0; // 1E2EC..1E2EF
16#1E4EC..16#1E4EF:
width := 0; // 1E4EC..1E4EF
16#1E8D0..16#1E8D6:
width := 0; // 1E8D0..1E8D6
16#1E944..16#1E94A:
width := 0; // 1E944..1E94A
16#1F004:
width := 2; // 1F004
16#1F0CF:
width := 2; // 1F0CF
16#1F18E:
width := 2; // 1F18E
16#1F191..16#1F19A:
width := 2; // 1F191..1F19A
16#1F200..16#1F202:
width := 2; // 1F200..1F202
16#1F210..16#1F23B:
width := 2; // 1F210..1F23B
16#1F240..16#1F248:
width := 2; // 1F240..1F248
16#1F250..16#1F251:
width := 2; // 1F250..1F251
16#1F260..16#1F265:
width := 2; // 1F260..1F265
16#1F300..16#1F320:
width := 2; // 1F300..1F320
16#1F32D..16#1F335:
width := 2; // 1F32D..1F335
16#1F337..16#1F37C:
width := 2; // 1F337..1F37C
16#1F37E..16#1F393:
width := 2; // 1F37E..1F393
16#1F3A0..16#1F3CA:
width := 2; // 1F3A0..1F3CA
16#1F3CF..16#1F3D3:
width := 2; // 1F3CF..1F3D3
16#1F3E0..16#1F3F0:
width := 2; // 1F3E0..1F3F0
16#1F3F4:
width := 2; // 1F3F4
16#1F3F8..16#1F3FA:
width := 2; // 1F3F8..1F3FA
16#1F3FB..16#1F3FF:
width := 0; // 1F3FB..1F3FF
16#1F400..16#1F43E:
width := 2; // 1F400..1F43E
16#1F440:
width := 2; // 1F440
16#1F442..16#1F4FC:
width := 2; // 1F442..1F4FC
16#1F4FF..16#1F53D:
width := 2; // 1F4FF..1F53D
16#1F54B..16#1F54E:
width := 2; // 1F54B..1F54E
16#1F550..16#1F567:
width := 2; // 1F550..1F567
16#1F57A:
width := 2; // 1F57A
16#1F595..16#1F596:
width := 2; // 1F595..1F596
16#1F5A4:
width := 2; // 1F5A4
16#1F5FB..16#1F64F:
width := 2; // 1F5FB..1F64F
16#1F680..16#1F6C5:
width := 2; // 1F680..1F6C5
16#1F6CC:
width := 2; // 1F6CC
16#1F6D0..16#1F6D2:
width := 2; // 1F6D0..1F6D2
16#1F6D5..16#1F6D7:
width := 2; // 1F6D5..1F6D7
16#1F6DC..16#1F6DF:
width := 2; // 1F6DC..1F6DF
16#1F6EB..16#1F6EC:
width := 2; // 1F6EB..1F6EC
16#1F6F4..16#1F6FC:
width := 2; // 1F6F4..1F6FC
16#1F7E0..16#1F7EB:
width := 2; // 1F7E0..1F7EB
16#1F7F0:
width := 2; // 1F7F0
16#1F90C..16#1F93A:
width := 2; // 1F90C..1F93A
16#1F93C..16#1F945:
width := 2; // 1F93C..1F945
16#1F947..16#1F9FF:
width := 2; // 1F947..1F9FF
16#1FA70..16#1FA7C:
width := 2; // 1FA70..1FA7C
16#1FA80..16#1FA88:
width := 2; // 1FA80..1FA88
16#1FA90..16#1FABD:
width := 2; // 1FA90..1FABD
16#1FABF..16#1FAC5:
width := 2; // 1FABF..1FAC5
16#1FACE..16#1FADB:
width := 2; // 1FACE..1FADB
16#1FAE0..16#1FAE8:
width := 2; // 1FAE0..1FAE8
16#1FAF0..16#1FAF8:
width := 2; // 1FAF0..1FAF8
16#20000..16#2FFFD:
width := 2; // 20000..2FFFD
16#30000..16#3FFFD:
width := 2; // 30000..3FFFD
ELSE
width := 1; // for all other codepoints
END_CASE
GetWidthFromCodepoint := width;