summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Faure <billiob@gmail.com>2020-08-05 23:05:47 +0200
committerBoris Faure <billiob@gmail.com>2020-08-10 22:44:41 +0200
commit698e8bb985a89a6d8cc308c9fd0545620bd8dbf0 (patch)
tree68c3cb52dc9a1a121565a3edeb1a1b6fb0b3f37d
parentcded4026540d7e5ccdc1e4d9fd268804a27a30e7 (diff)
termptydbl: be strict on what is wide and do not try to be smart.
Too bad if ❤ is considered single-width (cherry picked from commit d3c15c59dbf3cc9cf0a8aed516fa32bdd40d0a68)
-rw-r--r--src/bin/termptydbl.c205
-rwxr-xr-xtools/unicode_dbl_width.py4
2 files changed, 83 insertions, 126 deletions
diff --git a/src/bin/termptydbl.c b/src/bin/termptydbl.c
index 12e2c17..a87e24a 100644
--- a/src/bin/termptydbl.c
+++ b/src/bin/termptydbl.c
@@ -13,7 +13,8 @@ _termpty_is_ambigous_wide(Eina_Unicode g)
13 { 13 {
14 case 0xA1: EINA_FALLTHROUGH; 14 case 0xA1: EINA_FALLTHROUGH;
15 case 0xA4: EINA_FALLTHROUGH; 15 case 0xA4: EINA_FALLTHROUGH;
16 case 0xA7 ... 0xAA: EINA_FALLTHROUGH; 16 case 0xA7 ... 0xA8: EINA_FALLTHROUGH;
17 case 0xAA: EINA_FALLTHROUGH;
17 case 0xAD ... 0xAE: EINA_FALLTHROUGH; 18 case 0xAD ... 0xAE: EINA_FALLTHROUGH;
18 case 0xB0 ... 0xB4: EINA_FALLTHROUGH; 19 case 0xB0 ... 0xB4: EINA_FALLTHROUGH;
19 case 0xB6 ... 0xBA: EINA_FALLTHROUGH; 20 case 0xB6 ... 0xBA: EINA_FALLTHROUGH;
@@ -80,9 +81,8 @@ _termpty_is_ambigous_wide(Eina_Unicode g)
80 case 0x2030: EINA_FALLTHROUGH; 81 case 0x2030: EINA_FALLTHROUGH;
81 case 0x2032 ... 0x2033: EINA_FALLTHROUGH; 82 case 0x2032 ... 0x2033: EINA_FALLTHROUGH;
82 case 0x2035: EINA_FALLTHROUGH; 83 case 0x2035: EINA_FALLTHROUGH;
83 case 0x203B ... 0x203C: EINA_FALLTHROUGH; 84 case 0x203B: EINA_FALLTHROUGH;
84 case 0x203E: EINA_FALLTHROUGH; 85 case 0x203E: EINA_FALLTHROUGH;
85 case 0x2049: EINA_FALLTHROUGH;
86 case 0x2074: EINA_FALLTHROUGH; 86 case 0x2074: EINA_FALLTHROUGH;
87 case 0x207F: EINA_FALLTHROUGH; 87 case 0x207F: EINA_FALLTHROUGH;
88 case 0x2081 ... 0x2084: EINA_FALLTHROUGH; 88 case 0x2081 ... 0x2084: EINA_FALLTHROUGH;
@@ -95,14 +95,12 @@ _termpty_is_ambigous_wide(Eina_Unicode g)
95 case 0x2121 ... 0x2122: EINA_FALLTHROUGH; 95 case 0x2121 ... 0x2122: EINA_FALLTHROUGH;
96 case 0x2126: EINA_FALLTHROUGH; 96 case 0x2126: EINA_FALLTHROUGH;
97 case 0x212B: EINA_FALLTHROUGH; 97 case 0x212B: EINA_FALLTHROUGH;
98 case 0x2139: EINA_FALLTHROUGH;
99 case 0x2153 ... 0x2154: EINA_FALLTHROUGH; 98 case 0x2153 ... 0x2154: EINA_FALLTHROUGH;
100 case 0x215B ... 0x215E: EINA_FALLTHROUGH; 99 case 0x215B ... 0x215E: EINA_FALLTHROUGH;
101 case 0x2160 ... 0x216B: EINA_FALLTHROUGH; 100 case 0x2160 ... 0x216B: EINA_FALLTHROUGH;
102 case 0x2170 ... 0x2179: EINA_FALLTHROUGH; 101 case 0x2170 ... 0x2179: EINA_FALLTHROUGH;
103 case 0x2189: EINA_FALLTHROUGH; 102 case 0x2189: EINA_FALLTHROUGH;
104 case 0x2190 ... 0x2199: EINA_FALLTHROUGH; 103 case 0x2190 ... 0x2199: EINA_FALLTHROUGH;
105 case 0x21A9 ... 0x21AA: EINA_FALLTHROUGH;
106 case 0x21B8 ... 0x21B9: EINA_FALLTHROUGH; 104 case 0x21B8 ... 0x21B9: EINA_FALLTHROUGH;
107 case 0x21D2: EINA_FALLTHROUGH; 105 case 0x21D2: EINA_FALLTHROUGH;
108 case 0x21D4: EINA_FALLTHROUGH; 106 case 0x21D4: EINA_FALLTHROUGH;
@@ -137,17 +135,17 @@ _termpty_is_ambigous_wide(Eina_Unicode g)
137 case 0x22BF: EINA_FALLTHROUGH; 135 case 0x22BF: EINA_FALLTHROUGH;
138 case 0x2312: EINA_FALLTHROUGH; 136 case 0x2312: EINA_FALLTHROUGH;
139 case 0x231A ... 0x231B: EINA_FALLTHROUGH; 137 case 0x231A ... 0x231B: EINA_FALLTHROUGH;
140 case 0x2328 ... 0x232A: EINA_FALLTHROUGH; 138 case 0x2329 ... 0x232A: EINA_FALLTHROUGH;
141 case 0x23CF: EINA_FALLTHROUGH; 139 case 0x23E9 ... 0x23EC: EINA_FALLTHROUGH;
142 case 0x23E9 ... 0x23F3: EINA_FALLTHROUGH; 140 case 0x23F0: EINA_FALLTHROUGH;
143 case 0x23F8 ... 0x23FA: EINA_FALLTHROUGH; 141 case 0x23F3: EINA_FALLTHROUGH;
144 case 0x2460 ... 0x24E9: EINA_FALLTHROUGH; 142 case 0x2460 ... 0x24E9: EINA_FALLTHROUGH;
145 case 0x24EB ... 0x254B: EINA_FALLTHROUGH; 143 case 0x24EB ... 0x254B: EINA_FALLTHROUGH;
146 case 0x2550 ... 0x2573: EINA_FALLTHROUGH; 144 case 0x2550 ... 0x2573: EINA_FALLTHROUGH;
147 case 0x2580 ... 0x258F: EINA_FALLTHROUGH; 145 case 0x2580 ... 0x258F: EINA_FALLTHROUGH;
148 case 0x2592 ... 0x2595: EINA_FALLTHROUGH; 146 case 0x2592 ... 0x2595: EINA_FALLTHROUGH;
149 case 0x25A0 ... 0x25A1: EINA_FALLTHROUGH; 147 case 0x25A0 ... 0x25A1: EINA_FALLTHROUGH;
150 case 0x25A3 ... 0x25AB: EINA_FALLTHROUGH; 148 case 0x25A3 ... 0x25A9: EINA_FALLTHROUGH;
151 case 0x25B2 ... 0x25B3: EINA_FALLTHROUGH; 149 case 0x25B2 ... 0x25B3: EINA_FALLTHROUGH;
152 case 0x25B6 ... 0x25B7: EINA_FALLTHROUGH; 150 case 0x25B6 ... 0x25B7: EINA_FALLTHROUGH;
153 case 0x25BC ... 0x25BD: EINA_FALLTHROUGH; 151 case 0x25BC ... 0x25BD: EINA_FALLTHROUGH;
@@ -157,66 +155,42 @@ _termpty_is_ambigous_wide(Eina_Unicode g)
157 case 0x25CE ... 0x25D1: EINA_FALLTHROUGH; 155 case 0x25CE ... 0x25D1: EINA_FALLTHROUGH;
158 case 0x25E2 ... 0x25E5: EINA_FALLTHROUGH; 156 case 0x25E2 ... 0x25E5: EINA_FALLTHROUGH;
159 case 0x25EF: EINA_FALLTHROUGH; 157 case 0x25EF: EINA_FALLTHROUGH;
160 case 0x25FB ... 0x25FE: EINA_FALLTHROUGH; 158 case 0x25FD ... 0x25FE: EINA_FALLTHROUGH;
161 case 0x2600 ... 0x2606: EINA_FALLTHROUGH; 159 case 0x2605 ... 0x2606: EINA_FALLTHROUGH;
162 case 0x2609: EINA_FALLTHROUGH; 160 case 0x2609: EINA_FALLTHROUGH;
163 case 0x260E ... 0x260F: EINA_FALLTHROUGH; 161 case 0x260E ... 0x260F: EINA_FALLTHROUGH;
164 case 0x2611: EINA_FALLTHROUGH;
165 case 0x2614 ... 0x2615: EINA_FALLTHROUGH; 162 case 0x2614 ... 0x2615: EINA_FALLTHROUGH;
166 case 0x2618: EINA_FALLTHROUGH; 163 case 0x261C: EINA_FALLTHROUGH;
167 case 0x261C ... 0x261E: EINA_FALLTHROUGH; 164 case 0x261E: EINA_FALLTHROUGH;
168 case 0x2620: EINA_FALLTHROUGH;
169 case 0x2622 ... 0x2623: EINA_FALLTHROUGH;
170 case 0x2626: EINA_FALLTHROUGH;
171 case 0x262A: EINA_FALLTHROUGH;
172 case 0x262E ... 0x262F: EINA_FALLTHROUGH;
173 case 0x2638 ... 0x263A: EINA_FALLTHROUGH;
174 case 0x2640: EINA_FALLTHROUGH; 165 case 0x2640: EINA_FALLTHROUGH;
175 case 0x2642: EINA_FALLTHROUGH; 166 case 0x2642: EINA_FALLTHROUGH;
176 case 0x2648 ... 0x2653: EINA_FALLTHROUGH; 167 case 0x2648 ... 0x2653: EINA_FALLTHROUGH;
177 case 0x265F ... 0x2661: EINA_FALLTHROUGH; 168 case 0x2660 ... 0x2661: EINA_FALLTHROUGH;
178 case 0x2663 ... 0x266A: EINA_FALLTHROUGH; 169 case 0x2663 ... 0x2665: EINA_FALLTHROUGH;
170 case 0x2667 ... 0x266A: EINA_FALLTHROUGH;
179 case 0x266C ... 0x266D: EINA_FALLTHROUGH; 171 case 0x266C ... 0x266D: EINA_FALLTHROUGH;
180 case 0x266F: EINA_FALLTHROUGH; 172 case 0x266F: EINA_FALLTHROUGH;
181 case 0x267B: EINA_FALLTHROUGH; 173 case 0x267F: EINA_FALLTHROUGH;
182 case 0x267E ... 0x267F: EINA_FALLTHROUGH; 174 case 0x2693: EINA_FALLTHROUGH;
183 case 0x2692 ... 0x2697: EINA_FALLTHROUGH; 175 case 0x269E ... 0x269F: EINA_FALLTHROUGH;
184 case 0x2699: EINA_FALLTHROUGH; 176 case 0x26A1: EINA_FALLTHROUGH;
185 case 0x269B ... 0x269C: EINA_FALLTHROUGH;
186 case 0x269E ... 0x26A1: EINA_FALLTHROUGH;
187 case 0x26A7: EINA_FALLTHROUGH;
188 case 0x26AA ... 0x26AB: EINA_FALLTHROUGH; 177 case 0x26AA ... 0x26AB: EINA_FALLTHROUGH;
189 case 0x26B0 ... 0x26B1: EINA_FALLTHROUGH;
190 case 0x26BD ... 0x26BF: EINA_FALLTHROUGH; 178 case 0x26BD ... 0x26BF: EINA_FALLTHROUGH;
191 case 0x26C4 ... 0x26E1: EINA_FALLTHROUGH; 179 case 0x26C4 ... 0x26E1: EINA_FALLTHROUGH;
192 case 0x26E3: EINA_FALLTHROUGH; 180 case 0x26E3: EINA_FALLTHROUGH;
193 case 0x26E8 ... 0x26FF: EINA_FALLTHROUGH; 181 case 0x26E8 ... 0x26FF: EINA_FALLTHROUGH;
194 case 0x2702: EINA_FALLTHROUGH;
195 case 0x2705: EINA_FALLTHROUGH; 182 case 0x2705: EINA_FALLTHROUGH;
196 case 0x2708 ... 0x270D: EINA_FALLTHROUGH; 183 case 0x270A ... 0x270B: EINA_FALLTHROUGH;
197 case 0x270F: EINA_FALLTHROUGH;
198 case 0x2712: EINA_FALLTHROUGH;
199 case 0x2714: EINA_FALLTHROUGH;
200 case 0x2716: EINA_FALLTHROUGH;
201 case 0x271D: EINA_FALLTHROUGH;
202 case 0x2721: EINA_FALLTHROUGH;
203 case 0x2728: EINA_FALLTHROUGH; 184 case 0x2728: EINA_FALLTHROUGH;
204 case 0x2733 ... 0x2734: EINA_FALLTHROUGH;
205 case 0x273D: EINA_FALLTHROUGH; 185 case 0x273D: EINA_FALLTHROUGH;
206 case 0x2744: EINA_FALLTHROUGH;
207 case 0x2747: EINA_FALLTHROUGH;
208 case 0x274C: EINA_FALLTHROUGH; 186 case 0x274C: EINA_FALLTHROUGH;
209 case 0x274E: EINA_FALLTHROUGH; 187 case 0x274E: EINA_FALLTHROUGH;
210 case 0x2753 ... 0x2755: EINA_FALLTHROUGH; 188 case 0x2753 ... 0x2755: EINA_FALLTHROUGH;
211 case 0x2757: EINA_FALLTHROUGH; 189 case 0x2757: EINA_FALLTHROUGH;
212 case 0x2763 ... 0x2764: EINA_FALLTHROUGH;
213 case 0x2776 ... 0x277F: EINA_FALLTHROUGH; 190 case 0x2776 ... 0x277F: EINA_FALLTHROUGH;
214 case 0x2795 ... 0x2797: EINA_FALLTHROUGH; 191 case 0x2795 ... 0x2797: EINA_FALLTHROUGH;
215 case 0x27A1: EINA_FALLTHROUGH;
216 case 0x27B0: EINA_FALLTHROUGH; 192 case 0x27B0: EINA_FALLTHROUGH;
217 case 0x27BF: EINA_FALLTHROUGH; 193 case 0x27BF: EINA_FALLTHROUGH;
218 case 0x2934 ... 0x2935: EINA_FALLTHROUGH;
219 case 0x2B05 ... 0x2B07: EINA_FALLTHROUGH;
220 case 0x2B1B ... 0x2B1C: EINA_FALLTHROUGH; 194 case 0x2B1B ... 0x2B1C: EINA_FALLTHROUGH;
221 case 0x2B50: EINA_FALLTHROUGH; 195 case 0x2B50: EINA_FALLTHROUGH;
222 case 0x2B55 ... 0x2B59: EINA_FALLTHROUGH; 196 case 0x2B55 ... 0x2B59: EINA_FALLTHROUGH;
@@ -238,13 +212,30 @@ _termpty_is_ambigous_wide(Eina_Unicode g)
238 case 0x1F110 ... 0x1F12D: EINA_FALLTHROUGH; 212 case 0x1F110 ... 0x1F12D: EINA_FALLTHROUGH;
239 case 0x1F130 ... 0x1F169: EINA_FALLTHROUGH; 213 case 0x1F130 ... 0x1F169: EINA_FALLTHROUGH;
240 case 0x1F170 ... 0x1F1AC: EINA_FALLTHROUGH; 214 case 0x1F170 ... 0x1F1AC: EINA_FALLTHROUGH;
241 case 0x1F200 ... 0x1F64F: EINA_FALLTHROUGH; 215 case 0x1F200 ... 0x1F320: EINA_FALLTHROUGH;
216 case 0x1F32D ... 0x1F335: EINA_FALLTHROUGH;
217 case 0x1F337 ... 0x1F37C: EINA_FALLTHROUGH;
218 case 0x1F37E ... 0x1F393: EINA_FALLTHROUGH;
219 case 0x1F3A0 ... 0x1F3CA: EINA_FALLTHROUGH;
220 case 0x1F3CF ... 0x1F3D3: EINA_FALLTHROUGH;
221 case 0x1F3E0 ... 0x1F3F0: EINA_FALLTHROUGH;
222 case 0x1F3F4: EINA_FALLTHROUGH;
223 case 0x1F3F8 ... 0x1F43E: EINA_FALLTHROUGH;
224 case 0x1F440: EINA_FALLTHROUGH;
225 case 0x1F442 ... 0x1F4FC: EINA_FALLTHROUGH;
226 case 0x1F4FF ... 0x1F53D: EINA_FALLTHROUGH;
227 case 0x1F54B ... 0x1F54E: EINA_FALLTHROUGH;
228 case 0x1F550 ... 0x1F567: EINA_FALLTHROUGH;
229 case 0x1F57A: EINA_FALLTHROUGH;
230 case 0x1F595 ... 0x1F596: EINA_FALLTHROUGH;
231 case 0x1F5A4: EINA_FALLTHROUGH;
232 case 0x1F5FB ... 0x1F64F: EINA_FALLTHROUGH;
242 case 0x1F680 ... 0x1F6C5: EINA_FALLTHROUGH; 233 case 0x1F680 ... 0x1F6C5: EINA_FALLTHROUGH;
243 case 0x1F6CB ... 0x1F6D2: EINA_FALLTHROUGH; 234 case 0x1F6CC: EINA_FALLTHROUGH;
244 case 0x1F6D5 ... 0x1F6E5: EINA_FALLTHROUGH; 235 case 0x1F6D0 ... 0x1F6D2: EINA_FALLTHROUGH;
245 case 0x1F6E9: EINA_FALLTHROUGH; 236 case 0x1F6D5 ... 0x1F6D7: EINA_FALLTHROUGH;
246 case 0x1F6EB ... 0x1F6F0: EINA_FALLTHROUGH; 237 case 0x1F6EB ... 0x1F6EC: EINA_FALLTHROUGH;
247 case 0x1F6F3 ... 0x1F6FC: EINA_FALLTHROUGH; 238 case 0x1F6F4 ... 0x1F6FC: EINA_FALLTHROUGH;
248 case 0x1F7E0 ... 0x1F7EB: EINA_FALLTHROUGH; 239 case 0x1F7E0 ... 0x1F7EB: EINA_FALLTHROUGH;
249 case 0x1F90C ... 0x1F93A: EINA_FALLTHROUGH; 240 case 0x1F90C ... 0x1F93A: EINA_FALLTHROUGH;
250 case 0x1F93C ... 0x1F945: EINA_FALLTHROUGH; 241 case 0x1F93C ... 0x1F945: EINA_FALLTHROUGH;
@@ -264,87 +255,38 @@ _termpty_is_wide(Eina_Unicode g)
264{ 255{
265 switch (g) 256 switch (g)
266 { 257 {
267 case 0xA9: EINA_FALLTHROUGH;
268 case 0xAE: EINA_FALLTHROUGH;
269 case 0x1100 ... 0x115F: EINA_FALLTHROUGH; 258 case 0x1100 ... 0x115F: EINA_FALLTHROUGH;
270 case 0x203C: EINA_FALLTHROUGH;
271 case 0x2049: EINA_FALLTHROUGH;
272 case 0x2122: EINA_FALLTHROUGH;
273 case 0x2139: EINA_FALLTHROUGH;
274 case 0x2194 ... 0x2199: EINA_FALLTHROUGH;
275 case 0x21A9 ... 0x21AA: EINA_FALLTHROUGH;
276 case 0x231A ... 0x231B: EINA_FALLTHROUGH; 259 case 0x231A ... 0x231B: EINA_FALLTHROUGH;
277 case 0x2328 ... 0x232A: EINA_FALLTHROUGH; 260 case 0x2329 ... 0x232A: EINA_FALLTHROUGH;
278 case 0x23CF: EINA_FALLTHROUGH; 261 case 0x23E9 ... 0x23EC: EINA_FALLTHROUGH;
279 case 0x23E9 ... 0x23F3: EINA_FALLTHROUGH; 262 case 0x23F0: EINA_FALLTHROUGH;
280 case 0x23F8 ... 0x23FA: EINA_FALLTHROUGH; 263 case 0x23F3: EINA_FALLTHROUGH;
281 case 0x24C2: EINA_FALLTHROUGH; 264 case 0x25FD ... 0x25FE: EINA_FALLTHROUGH;
282 case 0x25AA ... 0x25AB: EINA_FALLTHROUGH;
283 case 0x25B6: EINA_FALLTHROUGH;
284 case 0x25C0: EINA_FALLTHROUGH;
285 case 0x25FB ... 0x25FE: EINA_FALLTHROUGH;
286 case 0x2600 ... 0x2604: EINA_FALLTHROUGH;
287 case 0x260E: EINA_FALLTHROUGH;
288 case 0x2611: EINA_FALLTHROUGH;
289 case 0x2614 ... 0x2615: EINA_FALLTHROUGH; 265 case 0x2614 ... 0x2615: EINA_FALLTHROUGH;
290 case 0x2618: EINA_FALLTHROUGH;
291 case 0x261D: EINA_FALLTHROUGH;
292 case 0x2620: EINA_FALLTHROUGH;
293 case 0x2622 ... 0x2623: EINA_FALLTHROUGH;
294 case 0x2626: EINA_FALLTHROUGH;
295 case 0x262A: EINA_FALLTHROUGH;
296 case 0x262E ... 0x262F: EINA_FALLTHROUGH;
297 case 0x2638 ... 0x263A: EINA_FALLTHROUGH;
298 case 0x2640: EINA_FALLTHROUGH;
299 case 0x2642: EINA_FALLTHROUGH;
300 case 0x2648 ... 0x2653: EINA_FALLTHROUGH; 266 case 0x2648 ... 0x2653: EINA_FALLTHROUGH;
301 case 0x265F ... 0x2660: EINA_FALLTHROUGH; 267 case 0x267F: EINA_FALLTHROUGH;
302 case 0x2663: EINA_FALLTHROUGH; 268 case 0x2693: EINA_FALLTHROUGH;
303 case 0x2665 ... 0x2666: EINA_FALLTHROUGH; 269 case 0x26A1: EINA_FALLTHROUGH;
304 case 0x2668: EINA_FALLTHROUGH;
305 case 0x267B: EINA_FALLTHROUGH;
306 case 0x267E ... 0x267F: EINA_FALLTHROUGH;
307 case 0x2692 ... 0x2697: EINA_FALLTHROUGH;
308 case 0x2699: EINA_FALLTHROUGH;
309 case 0x269B ... 0x269C: EINA_FALLTHROUGH;
310 case 0x26A0 ... 0x26A1: EINA_FALLTHROUGH;
311 case 0x26A7: EINA_FALLTHROUGH;
312 case 0x26AA ... 0x26AB: EINA_FALLTHROUGH; 270 case 0x26AA ... 0x26AB: EINA_FALLTHROUGH;
313 case 0x26B0 ... 0x26B1: EINA_FALLTHROUGH;
314 case 0x26BD ... 0x26BE: EINA_FALLTHROUGH; 271 case 0x26BD ... 0x26BE: EINA_FALLTHROUGH;
315 case 0x26C4 ... 0x26C5: EINA_FALLTHROUGH; 272 case 0x26C4 ... 0x26C5: EINA_FALLTHROUGH;
316 case 0x26C8: EINA_FALLTHROUGH; 273 case 0x26CE: EINA_FALLTHROUGH;
317 case 0x26CE ... 0x26CF: EINA_FALLTHROUGH; 274 case 0x26D4: EINA_FALLTHROUGH;
318 case 0x26D1: EINA_FALLTHROUGH; 275 case 0x26EA: EINA_FALLTHROUGH;
319 case 0x26D3 ... 0x26D4: EINA_FALLTHROUGH; 276 case 0x26F2 ... 0x26F3: EINA_FALLTHROUGH;
320 case 0x26E9 ... 0x26EA: EINA_FALLTHROUGH; 277 case 0x26F5: EINA_FALLTHROUGH;
321 case 0x26F0 ... 0x26F5: EINA_FALLTHROUGH; 278 case 0x26FA: EINA_FALLTHROUGH;
322 case 0x26F7 ... 0x26FA: EINA_FALLTHROUGH;
323 case 0x26FD: EINA_FALLTHROUGH; 279 case 0x26FD: EINA_FALLTHROUGH;
324 case 0x2702: EINA_FALLTHROUGH;
325 case 0x2705: EINA_FALLTHROUGH; 280 case 0x2705: EINA_FALLTHROUGH;
326 case 0x2708 ... 0x270D: EINA_FALLTHROUGH; 281 case 0x270A ... 0x270B: EINA_FALLTHROUGH;
327 case 0x270F: EINA_FALLTHROUGH;
328 case 0x2712: EINA_FALLTHROUGH;
329 case 0x2714: EINA_FALLTHROUGH;
330 case 0x2716: EINA_FALLTHROUGH;
331 case 0x271D: EINA_FALLTHROUGH;
332 case 0x2721: EINA_FALLTHROUGH;
333 case 0x2728: EINA_FALLTHROUGH; 282 case 0x2728: EINA_FALLTHROUGH;
334 case 0x2733 ... 0x2734: EINA_FALLTHROUGH;
335 case 0x2744: EINA_FALLTHROUGH;
336 case 0x2747: EINA_FALLTHROUGH;
337 case 0x274C: EINA_FALLTHROUGH; 283 case 0x274C: EINA_FALLTHROUGH;
338 case 0x274E: EINA_FALLTHROUGH; 284 case 0x274E: EINA_FALLTHROUGH;
339 case 0x2753 ... 0x2755: EINA_FALLTHROUGH; 285 case 0x2753 ... 0x2755: EINA_FALLTHROUGH;
340 case 0x2757: EINA_FALLTHROUGH; 286 case 0x2757: EINA_FALLTHROUGH;
341 case 0x2763 ... 0x2764: EINA_FALLTHROUGH;
342 case 0x2795 ... 0x2797: EINA_FALLTHROUGH; 287 case 0x2795 ... 0x2797: EINA_FALLTHROUGH;
343 case 0x27A1: EINA_FALLTHROUGH;
344 case 0x27B0: EINA_FALLTHROUGH; 288 case 0x27B0: EINA_FALLTHROUGH;
345 case 0x27BF: EINA_FALLTHROUGH; 289 case 0x27BF: EINA_FALLTHROUGH;
346 case 0x2934 ... 0x2935: EINA_FALLTHROUGH;
347 case 0x2B05 ... 0x2B07: EINA_FALLTHROUGH;
348 case 0x2B1B ... 0x2B1C: EINA_FALLTHROUGH; 290 case 0x2B1B ... 0x2B1C: EINA_FALLTHROUGH;
349 case 0x2B50: EINA_FALLTHROUGH; 291 case 0x2B50: EINA_FALLTHROUGH;
350 case 0x2B55: EINA_FALLTHROUGH; 292 case 0x2B55: EINA_FALLTHROUGH;
@@ -362,17 +304,32 @@ _termpty_is_wide(Eina_Unicode g)
362 case 0x16FE0 ... 0x1B2FB: EINA_FALLTHROUGH; 304 case 0x16FE0 ... 0x1B2FB: EINA_FALLTHROUGH;
363 case 0x1F004: EINA_FALLTHROUGH; 305 case 0x1F004: EINA_FALLTHROUGH;
364 case 0x1F0CF: EINA_FALLTHROUGH; 306 case 0x1F0CF: EINA_FALLTHROUGH;
365 case 0x1F170 ... 0x1F171: EINA_FALLTHROUGH;
366 case 0x1F17E ... 0x1F17F: EINA_FALLTHROUGH;
367 case 0x1F18E: EINA_FALLTHROUGH; 307 case 0x1F18E: EINA_FALLTHROUGH;
368 case 0x1F191 ... 0x1F19A: EINA_FALLTHROUGH; 308 case 0x1F191 ... 0x1F19A: EINA_FALLTHROUGH;
369 case 0x1F200 ... 0x1F64F: EINA_FALLTHROUGH; 309 case 0x1F200 ... 0x1F320: EINA_FALLTHROUGH;
310 case 0x1F32D ... 0x1F335: EINA_FALLTHROUGH;
311 case 0x1F337 ... 0x1F37C: EINA_FALLTHROUGH;
312 case 0x1F37E ... 0x1F393: EINA_FALLTHROUGH;
313 case 0x1F3A0 ... 0x1F3CA: EINA_FALLTHROUGH;
314 case 0x1F3CF ... 0x1F3D3: EINA_FALLTHROUGH;
315 case 0x1F3E0 ... 0x1F3F0: EINA_FALLTHROUGH;
316 case 0x1F3F4: EINA_FALLTHROUGH;
317 case 0x1F3F8 ... 0x1F43E: EINA_FALLTHROUGH;
318 case 0x1F440: EINA_FALLTHROUGH;
319 case 0x1F442 ... 0x1F4FC: EINA_FALLTHROUGH;
320 case 0x1F4FF ... 0x1F53D: EINA_FALLTHROUGH;
321 case 0x1F54B ... 0x1F54E: EINA_FALLTHROUGH;
322 case 0x1F550 ... 0x1F567: EINA_FALLTHROUGH;
323 case 0x1F57A: EINA_FALLTHROUGH;
324 case 0x1F595 ... 0x1F596: EINA_FALLTHROUGH;
325 case 0x1F5A4: EINA_FALLTHROUGH;
326 case 0x1F5FB ... 0x1F64F: EINA_FALLTHROUGH;
370 case 0x1F680 ... 0x1F6C5: EINA_FALLTHROUGH; 327 case 0x1F680 ... 0x1F6C5: EINA_FALLTHROUGH;
371 case 0x1F6CB ... 0x1F6D2: EINA_FALLTHROUGH; 328 case 0x1F6CC: EINA_FALLTHROUGH;
372 case 0x1F6D5 ... 0x1F6E5: EINA_FALLTHROUGH; 329 case 0x1F6D0 ... 0x1F6D2: EINA_FALLTHROUGH;
373 case 0x1F6E9: EINA_FALLTHROUGH; 330 case 0x1F6D5 ... 0x1F6D7: EINA_FALLTHROUGH;
374 case 0x1F6EB ... 0x1F6F0: EINA_FALLTHROUGH; 331 case 0x1F6EB ... 0x1F6EC: EINA_FALLTHROUGH;
375 case 0x1F6F3 ... 0x1F6FC: EINA_FALLTHROUGH; 332 case 0x1F6F4 ... 0x1F6FC: EINA_FALLTHROUGH;
376 case 0x1F7E0 ... 0x1F7EB: EINA_FALLTHROUGH; 333 case 0x1F7E0 ... 0x1F7EB: EINA_FALLTHROUGH;
377 case 0x1F90C ... 0x1F93A: EINA_FALLTHROUGH; 334 case 0x1F90C ... 0x1F93A: EINA_FALLTHROUGH;
378 case 0x1F93C ... 0x1F945: EINA_FALLTHROUGH; 335 case 0x1F93C ... 0x1F945: EINA_FALLTHROUGH;
diff --git a/tools/unicode_dbl_width.py b/tools/unicode_dbl_width.py
index 4ba3545..533f127 100755
--- a/tools/unicode_dbl_width.py
+++ b/tools/unicode_dbl_width.py
@@ -32,7 +32,7 @@ def get_ranges(xmlfile, emoji_as_wide):
32 if emoji_as_wide: 32 if emoji_as_wide:
33 ext_pic = c.get('ExtPict') 33 ext_pic = c.get('ExtPict')
34 emoji = c.get('Emoji') 34 emoji = c.get('Emoji')
35 if emoji == 'Y' and ext_pic == 'Y': 35 if emoji == 'Y' and ext_pic == 'Y' and ea != 'A':
36 ea = 'W' 36 ea = 'W'
37 else: 37 else:
38 blk = c.get('blk') 38 blk = c.get('blk')
@@ -190,5 +190,5 @@ parser.add_argument('source', type=argparse.FileType('w'))
190 190
191args = parser.parse_args() 191args = parser.parse_args()
192 192
193ranges = get_ranges(args.xml, True) 193ranges = get_ranges(args.xml, False)
194gen_c(ranges, args.header, args.source) 194gen_c(ranges, args.header, args.source)