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