xref: /PHP-8.0/ext/mbstring/libmbfl/mbfl/eaw_table.h (revision 3a100cd7)
1 /* East Asian Width table
2  *
3  * Some characters in East Asian languages are intended to be displayed in a space
4  * which is roughly square. (This contrasts with others such as the Latin alphabet,
5  * which are taller than they are wide.) To display these East Asian characters
6  * properly, twice the horizontal space is used. This must be taken into account
7  * when doing things like wrapping text to a specific width.
8  *
9  * Each pair of numbers in the below table is a range of Unicode codepoints
10  * which should be displayed as double-width. */
11 
12 static const struct {
13 	int begin;
14 	int end;
15 } mbfl_eaw_table[] = {
16 	{ 0x1100, 0x115f },
17 	{ 0x11a3, 0x11a7 },
18 	{ 0x11fa, 0x11ff },
19 	{ 0x2329, 0x232a },
20 	{ 0x2e80, 0x2e99 },
21 	{ 0x2e9b, 0x2ef3 },
22 	{ 0x2f00, 0x2fd5 },
23 	{ 0x2ff0, 0x2ffb },
24 	{ 0x3000, 0x303e },
25 	{ 0x3041, 0x3096 },
26 	{ 0x3099, 0x30ff },
27 	{ 0x3105, 0x312d },
28 	{ 0x3131, 0x318e },
29 	{ 0x3190, 0x31ba },
30 	{ 0x31c0, 0x31e3 },
31 	{ 0x31f0, 0x321e },
32 	{ 0x3220, 0x3247 },
33 	{ 0x3250, 0x32fe },
34 	{ 0x3300, 0x4dbf },
35 	{ 0x4e00, 0xa48c },
36 	{ 0xa490, 0xa4c6 },
37 	{ 0xa960, 0xa97c },
38 	{ 0xac00, 0xd7a3 },
39 	{ 0xd7b0, 0xd7c6 },
40 	{ 0xd7cb, 0xd7fb },
41 	{ 0xf900, 0xfaff },
42 	{ 0xfe10, 0xfe19 },
43 	{ 0xfe30, 0xfe52 },
44 	{ 0xfe54, 0xfe66 },
45 	{ 0xfe68, 0xfe6b },
46 	{ 0xff01, 0xff60 },
47 	{ 0xffe0, 0xffe6 },
48 	{ 0x1b000, 0x1b001 },
49 	{ 0x1f200, 0x1f202 },
50 	{ 0x1f210, 0x1f23a },
51 	{ 0x1f240, 0x1f248 },
52 	{ 0x1f250, 0x1f251 },
53 	{ 0x20000, 0x2fffd },
54 	{ 0x30000, 0x3fffd }
55 };
56