Skip to content

Commit 9bea73f

Browse files
committed
wcwidth
1 parent d75fa20 commit 9bea73f

File tree

5 files changed

+777
-0
lines changed

5 files changed

+777
-0
lines changed

wcwidth/table_vs16.odin

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
package wcwidth
2+
3+
/*
4+
Exports VS16_NARROW_TO_WIDE table keyed by supporting unicode version level.
5+
6+
This code generated by wcwidth/bin/update-tables.py on 2023-11-07 16:43:49 UTC.
7+
*/
8+
9+
VS16_NARROW_TO_WIDE :: Table{
10+
// Source: 9.0.0
11+
// Date: 2023-02-01, 02:22:54 GMT
12+
{0x00023, 0x00023}, // Number Sign
13+
{0x0002a, 0x0002a}, // Asterisk
14+
{0x00030, 0x00039}, // Digit Zero ..Digit Nine
15+
{0x000a9, 0x000a9}, // Copyright Sign
16+
{0x000ae, 0x000ae}, // Registered Sign
17+
{0x0203c, 0x0203c}, // Double Exclamation Mark
18+
{0x02049, 0x02049}, // Exclamation Question Mark
19+
{0x02122, 0x02122}, // Trade Mark Sign
20+
{0x02139, 0x02139}, // Information Source
21+
{0x02194, 0x02199}, // Left Right Arrow ..South West Arrow
22+
{0x021a9, 0x021aa}, // Leftwards Arrow With Hoo..Rightwards Arrow With Ho
23+
{0x02328, 0x02328}, // Keyboard
24+
{0x023cf, 0x023cf}, // Eject Symbol
25+
{0x023ed, 0x023ef}, // Black Right-pointing Dou..Black Right-pointing Tri
26+
{0x023f1, 0x023f2}, // Stopwatch ..Timer Clock
27+
{0x023f8, 0x023fa}, // Double Vertical Bar ..Black Circle For Record
28+
{0x024c2, 0x024c2}, // Circled Latin Capital Letter M
29+
{0x025aa, 0x025ab}, // Black Small Square ..White Small Square
30+
{0x025b6, 0x025b6}, // Black Right-pointing Triangle
31+
{0x025c0, 0x025c0}, // Black Left-pointing Triangle
32+
{0x025fb, 0x025fc}, // White Medium Square ..Black Medium Square
33+
{0x02600, 0x02604}, // Black Sun With Rays ..Comet
34+
{0x0260e, 0x0260e}, // Black Telephone
35+
{0x02611, 0x02611}, // Ballot Box With Check
36+
{0x02618, 0x02618}, // Shamrock
37+
{0x0261d, 0x0261d}, // White Up Pointing Index
38+
{0x02620, 0x02620}, // Skull And Crossbones
39+
{0x02622, 0x02623}, // Radioactive Sign ..Biohazard Sign
40+
{0x02626, 0x02626}, // Orthodox Cross
41+
{0x0262a, 0x0262a}, // Star And Crescent
42+
{0x0262e, 0x0262f}, // Peace Symbol ..Yin Yang
43+
{0x02638, 0x0263a}, // Wheel Of Dharma ..White Smiling Face
44+
{0x02640, 0x02640}, // Female Sign
45+
{0x02642, 0x02642}, // Male Sign
46+
{0x0265f, 0x02660}, // Black Chess Pawn ..Black Spade Suit
47+
{0x02663, 0x02663}, // Black Club Suit
48+
{0x02665, 0x02666}, // Black Heart Suit ..Black Diamond Suit
49+
{0x02668, 0x02668}, // Hot Springs
50+
{0x0267b, 0x0267b}, // Black Universal Recycling Symbol
51+
{0x0267e, 0x0267e}, // Permanent Paper Sign
52+
{0x02692, 0x02692}, // Hammer And Pick
53+
{0x02694, 0x02697}, // Crossed Swords ..Alembic
54+
{0x02699, 0x02699}, // Gear
55+
{0x0269b, 0x0269c}, // Atom Symbol ..Fleur-de-lis
56+
{0x026a0, 0x026a0}, // Warning Sign
57+
{0x026a7, 0x026a7}, // Male With Stroke And Male And Female Sign
58+
{0x026b0, 0x026b1}, // Coffin ..Funeral Urn
59+
{0x026c8, 0x026c8}, // Thunder Cloud And Rain
60+
{0x026cf, 0x026cf}, // Pick
61+
{0x026d1, 0x026d1}, // Helmet With White Cross
62+
{0x026d3, 0x026d3}, // Chains
63+
{0x026e9, 0x026e9}, // Shinto Shrine
64+
{0x026f0, 0x026f1}, // Mountain ..Umbrella On Ground
65+
{0x026f4, 0x026f4}, // Ferry
66+
{0x026f7, 0x026f9}, // Skier ..Person With Ball
67+
{0x02702, 0x02702}, // Black Scissors
68+
{0x02708, 0x02709}, // Airplane ..Envelope
69+
{0x0270c, 0x0270d}, // Victory Hand ..Writing Hand
70+
{0x0270f, 0x0270f}, // Pencil
71+
{0x02712, 0x02712}, // Black Nib
72+
{0x02714, 0x02714}, // Heavy Check Mark
73+
{0x02716, 0x02716}, // Heavy Multiplication X
74+
{0x0271d, 0x0271d}, // Latin Cross
75+
{0x02721, 0x02721}, // Star Of David
76+
{0x02733, 0x02734}, // Eight Spoked Asterisk ..Eight Pointed Black Star
77+
{0x02744, 0x02744}, // Snowflake
78+
{0x02747, 0x02747}, // Sparkle
79+
{0x02763, 0x02764}, // Heavy Heart Exclamation ..Heavy Black Heart
80+
{0x027a1, 0x027a1}, // Black Rightwards Arrow
81+
{0x02934, 0x02935}, // Arrow Pointing Rightward..Arrow Pointing Rightward
82+
{0x02b05, 0x02b07}, // Leftwards Black Arrow ..Downwards Black Arrow
83+
{0x1f170, 0x1f171}, // Negative Squared Latin C..Negative Squared Latin C
84+
{0x1f17e, 0x1f17f}, // Negative Squared Latin C..Negative Squared Latin C
85+
{0x1f321, 0x1f321}, // Thermometer
86+
{0x1f324, 0x1f32c}, // White Sun With Small Clo..Wind Blowing Face
87+
{0x1f336, 0x1f336}, // Hot Pepper
88+
{0x1f37d, 0x1f37d}, // Fork And Knife With Plate
89+
{0x1f396, 0x1f397}, // Military Medal ..Reminder Ribbon
90+
{0x1f399, 0x1f39b}, // Studio Microphone ..Control Knobs
91+
{0x1f39e, 0x1f39f}, // Film Frames ..Admission Tickets
92+
{0x1f3cb, 0x1f3ce}, // Weight Lifter ..Racing Car
93+
{0x1f3d4, 0x1f3df}, // Snow Capped Mountain ..Stadium
94+
{0x1f3f3, 0x1f3f3}, // Waving White Flag
95+
{0x1f3f5, 0x1f3f5}, // Rosette
96+
{0x1f3f7, 0x1f3f7}, // Label
97+
{0x1f43f, 0x1f43f}, // Chipmunk
98+
{0x1f441, 0x1f441}, // Eye
99+
{0x1f4fd, 0x1f4fd}, // Film Projector
100+
{0x1f549, 0x1f54a}, // Om Symbol ..Dove Of Peace
101+
{0x1f56f, 0x1f570}, // Candle ..Mantelpiece Clock
102+
{0x1f573, 0x1f579}, // Hole ..Joystick
103+
{0x1f587, 0x1f587}, // Linked Paperclips
104+
{0x1f58a, 0x1f58d}, // Lower Left Ballpoint Pen..Lower Left Crayon
105+
{0x1f590, 0x1f590}, // Raised Hand With Fingers Splayed
106+
{0x1f5a5, 0x1f5a5}, // Desktop Computer
107+
{0x1f5a8, 0x1f5a8}, // Printer
108+
{0x1f5b1, 0x1f5b2}, // Three Button Mouse ..Trackball
109+
{0x1f5bc, 0x1f5bc}, // Frame With Picture
110+
{0x1f5c2, 0x1f5c4}, // Card Index Dividers ..File Cabinet
111+
{0x1f5d1, 0x1f5d3}, // Wastebasket ..Spiral Calendar Pad
112+
{0x1f5dc, 0x1f5de}, // Compression ..Rolled-up Newspaper
113+
{0x1f5e1, 0x1f5e1}, // Dagger Knife
114+
{0x1f5e3, 0x1f5e3}, // Speaking Head In Silhouette
115+
{0x1f5e8, 0x1f5e8}, // Left Speech Bubble
116+
{0x1f5ef, 0x1f5ef}, // Right Anger Bubble
117+
{0x1f5f3, 0x1f5f3}, // Ballot Box With Ballot
118+
{0x1f5fa, 0x1f5fa}, // World Map
119+
{0x1f6cb, 0x1f6cb}, // Couch And Lamp
120+
{0x1f6cd, 0x1f6cf}, // Shopping Bags ..Bed
121+
{0x1f6e0, 0x1f6e5}, // Hammer And Wrench ..Motor Boat
122+
{0x1f6e9, 0x1f6e9}, // Small Airplane
123+
{0x1f6f0, 0x1f6f0}, // Satellite
124+
{0x1f6f3, 0x1f6f3}, // Passenger Ship
125+
}

wcwidth/table_wide.odin

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
package wcwidth
2+
3+
// https://github.com/jquast/wcwidth/blob/master/wcwidth/table_wide.py
4+
// from https://github.com/jquast/wcwidth/pull/64
5+
// at commit 1b9b6585b0080ea5cb88dc9815796505724793fe (2022-12-16):
6+
WIDE_EASTASIAN :: Table {
7+
{0x01100, 0x0115f}, // Hangul Choseong Kiyeok ..Hangul Choseong Filler
8+
{0x0231a, 0x0231b}, // Watch ..Hourglass
9+
{0x02329, 0x0232a}, // Left-pointing Angle Brac..Right-pointing Angle Bra
10+
{0x023e9, 0x023ec}, // Black Right-pointing Dou..Black Down-pointing Doub
11+
{0x023f0, 0x023f0}, // Alarm Clock ..Alarm Clock
12+
{0x023f3, 0x023f3}, // Hourglass With Flowing S..Hourglass With Flowing S
13+
{0x025fd, 0x025fe}, // White Medium Small Squar..Black Medium Small Squar
14+
{0x02614, 0x02615}, // Umbrella With Rain Drops..Hot Beverage
15+
{0x02648, 0x02653}, // Aries ..Pisces
16+
{0x0267f, 0x0267f}, // Wheelchair Symbol ..Wheelchair Symbol
17+
{0x02693, 0x02693}, // Anchor ..Anchor
18+
{0x026a1, 0x026a1}, // High Voltage Sign ..High Voltage Sign
19+
{0x026aa, 0x026ab}, // Medium White Circle ..Medium Black Circle
20+
{0x026bd, 0x026be}, // Soccer Ball ..Baseball
21+
{0x026c4, 0x026c5}, // Snowman Without Snow ..Sun Behind Cloud
22+
{0x026ce, 0x026ce}, // Ophiuchus ..Ophiuchus
23+
{0x026d4, 0x026d4}, // No Entry ..No Entry
24+
{0x026ea, 0x026ea}, // Church ..Church
25+
{0x026f2, 0x026f3}, // Fountain ..Flag In Hole
26+
{0x026f5, 0x026f5}, // Sailboat ..Sailboat
27+
{0x026fa, 0x026fa}, // Tent ..Tent
28+
{0x026fd, 0x026fd}, // Fuel Pump ..Fuel Pump
29+
{0x02705, 0x02705}, // White Heavy Check Mark ..White Heavy Check Mark
30+
{0x0270a, 0x0270b}, // Raised Fist ..Raised Hand
31+
{0x02728, 0x02728}, // Sparkles ..Sparkles
32+
{0x0274c, 0x0274c}, // Cross Mark ..Cross Mark
33+
{0x0274e, 0x0274e}, // Negative Squared Cross M..Negative Squared Cross M
34+
{0x02753, 0x02755}, // Black Question Mark Orna..White Exclamation Mark O
35+
{0x02757, 0x02757}, // Heavy Exclamation Mark S..Heavy Exclamation Mark S
36+
{0x02795, 0x02797}, // Heavy Plus Sign ..Heavy Division Sign
37+
{0x027b0, 0x027b0}, // Curly Loop ..Curly Loop
38+
{0x027bf, 0x027bf}, // Double Curly Loop ..Double Curly Loop
39+
{0x02b1b, 0x02b1c}, // Black Large Square ..White Large Square
40+
{0x02b50, 0x02b50}, // White Medium Star ..White Medium Star
41+
{0x02b55, 0x02b55}, // Heavy Large Circle ..Heavy Large Circle
42+
{0x02e80, 0x02e99}, // Cjk Radical Repeat ..Cjk Radical Rap
43+
{0x02e9b, 0x02ef3}, // Cjk Radical Choke ..Cjk Radical C-simplified
44+
{0x02f00, 0x02fd5}, // Kangxi Radical One ..Kangxi Radical Flute
45+
{0x02ff0, 0x02ffb}, // Ideographic Description ..Ideographic Description
46+
{0x03000, 0x0303e}, // Ideographic Space ..Ideographic Variation In
47+
{0x03041, 0x03096}, // Hiragana Letter Small A ..Hiragana Letter Small Ke
48+
{0x03099, 0x030ff}, // Combining Katakana-hirag..Katakana Digraph Koto
49+
{0x03105, 0x0312f}, // Bopomofo Letter B ..Bopomofo Letter Nn
50+
{0x03131, 0x0318e}, // Hangul Letter Kiyeok ..Hangul Letter Araeae
51+
{0x03190, 0x031e3}, // Ideographic Annotation L..Cjk Stroke Q
52+
{0x031f0, 0x0321e}, // Katakana Letter Small Ku..Parenthesized Korean Cha
53+
{0x03220, 0x03247}, // Parenthesized Ideograph ..Circled Ideograph Koto
54+
{0x03250, 0x04dbf}, // Partnership Sign ..Cjk Unified Ideograph-4d
55+
{0x04e00, 0x0a48c}, // Cjk Unified Ideograph-4e..Yi Syllable Yyr
56+
{0x0a490, 0x0a4c6}, // Yi Radical Qot ..Yi Radical Ke
57+
{0x0a960, 0x0a97c}, // Hangul Choseong Tikeut-m..Hangul Choseong Ssangyeo
58+
{0x0ac00, 0x0d7a3}, // Hangul Syllable Ga ..Hangul Syllable Hih
59+
{0x0f900, 0x0faff}, // Cjk Compatibility Ideogr..(nil)
60+
{0x0fe10, 0x0fe19}, // Presentation Form For Ve..Presentation Form For Ve
61+
{0x0fe30, 0x0fe52}, // Presentation Form For Ve..Small Full Stop
62+
{0x0fe54, 0x0fe66}, // Small Semicolon ..Small Equals Sign
63+
{0x0fe68, 0x0fe6b}, // Small Reverse Solidus ..Small Commercial At
64+
{0x0ff01, 0x0ff60}, // Fullwidth Exclamation Ma..Fullwidth Right White Pa
65+
{0x0ffe0, 0x0ffe6}, // Fullwidth Cent Sign ..Fullwidth Won Sign
66+
{0x16fe0, 0x16fe4}, // Tangut Iteration Mark ..Khitan Small Script Fill
67+
{0x16ff0, 0x16ff1}, // Vietnamese Alternate Rea..Vietnamese Alternate Rea
68+
{0x17000, 0x187f7}, // (nil) ..(nil)
69+
{0x18800, 0x18cd5}, // Tangut Component-001 ..Khitan Small Script Char
70+
{0x18d00, 0x18d08}, // (nil) ..(nil)
71+
{0x1aff0, 0x1aff3}, // Katakana Letter Minnan T..Katakana Letter Minnan T
72+
{0x1aff5, 0x1affb}, // Katakana Letter Minnan T..Katakana Letter Minnan N
73+
{0x1affd, 0x1affe}, // Katakana Letter Minnan N..Katakana Letter Minnan N
74+
{0x1b000, 0x1b122}, // Katakana Letter Archaic ..Katakana Letter Archaic
75+
{0x1b132, 0x1b132}, // (nil) ..(nil)
76+
{0x1b150, 0x1b152}, // Hiragana Letter Small Wi..Hiragana Letter Small Wo
77+
{0x1b155, 0x1b155}, // (nil) ..(nil)
78+
{0x1b164, 0x1b167}, // Katakana Letter Small Wi..Katakana Letter Small N
79+
{0x1b170, 0x1b2fb}, // Nushu Character-1b170 ..Nushu Character-1b2fb
80+
{0x1f004, 0x1f004}, // Mahjong Tile Red Dragon ..Mahjong Tile Red Dragon
81+
{0x1f0cf, 0x1f0cf}, // Playing Card Black Joker..Playing Card Black Joker
82+
{0x1f18e, 0x1f18e}, // Negative Squared Ab ..Negative Squared Ab
83+
{0x1f191, 0x1f19a}, // Squared Cl ..Squared Vs
84+
{0x1f200, 0x1f202}, // Square Hiragana Hoka ..Squared Katakana Sa
85+
{0x1f210, 0x1f23b}, // Squared Cjk Unified Ideo..Squared Cjk Unified Ideo
86+
{0x1f240, 0x1f248}, // Tortoise Shell Bracketed..Tortoise Shell Bracketed
87+
{0x1f250, 0x1f251}, // Circled Ideograph Advant..Circled Ideograph Accept
88+
{0x1f260, 0x1f265}, // Rounded Symbol For Fu ..Rounded Symbol For Cai
89+
{0x1f300, 0x1f320}, // Cyclone ..Shooting Star
90+
{0x1f32d, 0x1f335}, // Hot Dog ..Cactus
91+
{0x1f337, 0x1f37c}, // Tulip ..Baby Bottle
92+
{0x1f37e, 0x1f393}, // Bottle With Popping Cork..Graduation Cap
93+
{0x1f3a0, 0x1f3ca}, // Carousel Horse ..Swimmer
94+
{0x1f3cf, 0x1f3d3}, // Cricket Bat And Ball ..Table Tennis Paddle And
95+
{0x1f3e0, 0x1f3f0}, // House Building ..European Castle
96+
{0x1f3f4, 0x1f3f4}, // Waving Black Flag ..Waving Black Flag
97+
{0x1f3f8, 0x1f43e}, // Badminton Racquet And Sh..Paw Prints
98+
{0x1f440, 0x1f440}, // Eyes ..Eyes
99+
{0x1f442, 0x1f4fc}, // Ear ..Videocassette
100+
{0x1f4ff, 0x1f53d}, // Prayer Beads ..Down-pointing Small Red
101+
{0x1f54b, 0x1f54e}, // Kaaba ..Menorah With Nine Branch
102+
{0x1f550, 0x1f567}, // Clock Face One Oclock ..Clock Face Twelve-thirty
103+
{0x1f57a, 0x1f57a}, // Man Dancing ..Man Dancing
104+
{0x1f595, 0x1f596}, // Reversed Hand With Middl..Raised Hand With Part Be
105+
{0x1f5a4, 0x1f5a4}, // Black Heart ..Black Heart
106+
{0x1f5fb, 0x1f64f}, // Mount Fuji ..Person With Folded Hands
107+
{0x1f680, 0x1f6c5}, // Rocket ..Left Luggage
108+
{0x1f6cc, 0x1f6cc}, // Sleeping Accommodation ..Sleeping Accommodation
109+
{0x1f6d0, 0x1f6d2}, // Place Of Worship ..Shopping Trolley
110+
{0x1f6d5, 0x1f6d7}, // Hindu Temple ..Elevator
111+
{0x1f6dc, 0x1f6df}, // (nil) ..Ring Buoy
112+
{0x1f6eb, 0x1f6ec}, // Airplane Departure ..Airplane Arriving
113+
{0x1f6f4, 0x1f6fc}, // Scooter ..Roller Skate
114+
{0x1f7e0, 0x1f7eb}, // Large Orange Circle ..Large Brown Square
115+
{0x1f7f0, 0x1f7f0}, // Heavy Equals Sign ..Heavy Equals Sign
116+
{0x1f90c, 0x1f93a}, // Pinched Fingers ..Fencer
117+
{0x1f93c, 0x1f945}, // Wrestlers ..Goal Net
118+
{0x1f947, 0x1f9ff}, // First Place Medal ..Nazar Amulet
119+
{0x1fa70, 0x1fa7c}, // Ballet Shoes ..Crutch
120+
{0x1fa80, 0x1fa88}, // Yo-yo ..(nil)
121+
{0x1fa90, 0x1fabd}, // Ringed Planet ..(nil)
122+
{0x1fabf, 0x1fac5}, // (nil) ..Person With Crown
123+
{0x1face, 0x1fadb}, // (nil) ..(nil)
124+
{0x1fae0, 0x1fae8}, // Melting Face ..(nil)
125+
{0x1faf0, 0x1faf8}, // Hand With Index Finger A..(nil)
126+
{0x20000, 0x2fffd}, // Cjk Unified Ideograph-20..(nil)
127+
{0x30000, 0x3fffd}, // Cjk Unified Ideograph-30..(nil)
128+
}

0 commit comments

Comments
 (0)