YkLib 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.rspec +3 -0
- data/.travis.yml +6 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +34 -0
- data/LICENSE.txt +21 -0
- data/README.md +44 -0
- data/Rakefile +6 -0
- data/YkLib.gemspec +29 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/YkLib/Yk/__advance__.rb +151 -0
- data/lib/YkLib/Yk/__defun__.rb +44 -0
- data/lib/YkLib/Yk/__hook__.rb +244 -0
- data/lib/YkLib/Yk/__minmax__.rb +123 -0
- data/lib/YkLib/Yk/__stdlog.rb +329 -0
- data/lib/YkLib/Yk/adhocLiterals/email.rb +119 -0
- data/lib/YkLib/Yk/adhocLiterals/path.rb +402 -0
- data/lib/YkLib/Yk/adhocLiterals/tag.rb +19 -0
- data/lib/YkLib/Yk/adhocLiterals/url.rb +36 -0
- data/lib/YkLib/Yk/adhocLiterals.rb +199 -0
- data/lib/YkLib/Yk/auto_escseq.rb +5 -0
- data/lib/YkLib/Yk/auto_pstore.rb +179 -0
- data/lib/YkLib/Yk/bsearch.rb +120 -0
- data/lib/YkLib/Yk/clambda.rb +309 -0
- data/lib/YkLib/Yk/confLine.rb +423 -0
- data/lib/YkLib/Yk/create_tty_width_available.rb +24 -0
- data/lib/YkLib/Yk/crypt.rb +26 -0
- data/lib/YkLib/Yk/debug2 +1 -0
- data/lib/YkLib/Yk/debug2.rb +473 -0
- data/lib/YkLib/Yk/debugout.rb +139 -0
- data/lib/YkLib/Yk/email_tz.rb +533 -0
- data/lib/YkLib/Yk/enum_expect.rb +170 -0
- data/lib/YkLib/Yk/errlog.rb +5 -0
- data/lib/YkLib/Yk/escseq.rb +59 -0
- data/lib/YkLib/Yk/eval_alt.rb +281 -0
- data/lib/YkLib/Yk/expector.rb +93 -0
- data/lib/YkLib/Yk/fetch.rb +556 -0
- data/lib/YkLib/Yk/fetch_old.rb +290 -0
- data/lib/YkLib/Yk/fib.rb +158 -0
- data/lib/YkLib/Yk/file_aux.rb +843 -0
- data/lib/YkLib/Yk/file_aux2.rb +919 -0
- data/lib/YkLib/Yk/file_aux_old.rb +160 -0
- data/lib/YkLib/Yk/filemod.rb +19 -0
- data/lib/YkLib/Yk/force_escseq.rb +3 -0
- data/lib/YkLib/Yk/generator__.rb +144 -0
- data/lib/YkLib/Yk/generator__.rb.org +139 -0
- data/lib/YkLib/Yk/indenter/argless_case.rb +46 -0
- data/lib/YkLib/Yk/indenter/each_token.rb +671 -0
- data/lib/YkLib/Yk/indenter/free_case.rb +313 -0
- data/lib/YkLib/Yk/indenter/if_less.rb +53 -0
- data/lib/YkLib/Yk/indenter/independent_ensure.rb +23 -0
- data/lib/YkLib/Yk/indenter/independent_rescue.rb +23 -0
- data/lib/YkLib/Yk/indenter/operand_circumflex.rb +0 -0
- data/lib/YkLib/Yk/indenter/operand_period.rb +16 -0
- data/lib/YkLib/Yk/indenter/parenless_and.rb +37 -0
- data/lib/YkLib/Yk/indenter/post_test.rb +48 -0
- data/lib/YkLib/Yk/indenter/token.rb +1525 -0
- data/lib/YkLib/Yk/indenter.rb +1382 -0
- data/lib/YkLib/Yk/inot.rb +265 -0
- data/lib/YkLib/Yk/intf.rb +815 -0
- data/lib/YkLib/Yk/io_aux.rb +1332 -0
- data/lib/YkLib/Yk/ioctl.rb +60 -0
- data/lib/YkLib/Yk/ipcc.rb +87 -0
- data/lib/YkLib/Yk/ipcountry.rb +207 -0
- data/lib/YkLib/Yk/ipv4adr.rb +318 -0
- data/lib/YkLib/Yk/localmail.rb +276 -0
- data/lib/YkLib/Yk/method_chain.rb +359 -0
- data/lib/YkLib/Yk/misc_tz.rb +1716 -0
- data/lib/YkLib/Yk/missing_method.rb +50 -0
- data/lib/YkLib/Yk/mojiConv.rb +257 -0
- data/lib/YkLib/Yk/nostdlog.rb +4 -0
- data/lib/YkLib/Yk/on_marshal.rb +20 -0
- data/lib/YkLib/Yk/overrider.rb +47 -0
- data/lib/YkLib/Yk/path.rb +293 -0
- data/lib/YkLib/Yk/path_aux.rb +883 -0
- data/lib/YkLib/Yk/path_aux_alt.rb +0 -0
- data/lib/YkLib/Yk/path_rep.rb +1267 -0
- data/lib/YkLib/Yk/pg_setup.rb +917 -0
- data/lib/YkLib/Yk/procinfo.rb +314 -0
- data/lib/YkLib/Yk/proclist.rb +492 -0
- data/lib/YkLib/Yk/property.rb +863 -0
- data/lib/YkLib/Yk/ranger.rb +606 -0
- data/lib/YkLib/Yk/resolv_tz.rb +88 -0
- data/lib/YkLib/Yk/rlprompt.rb +73 -0
- data/lib/YkLib/Yk/rootexec.rb +48 -0
- data/lib/YkLib/Yk/rpm-packageproxy.rb +784 -0
- data/lib/YkLib/Yk/rpm-packageproxy2.rb +1430 -0
- data/lib/YkLib/Yk/rwhen.rb +21 -0
- data/lib/YkLib/Yk/selector.rb +124 -0
- data/lib/YkLib/Yk/set.rb +170 -0
- data/lib/YkLib/Yk/shellquote.rb +300 -0
- data/lib/YkLib/Yk/sio.rb +1001 -0
- data/lib/YkLib/Yk/sio0.rb +835 -0
- data/lib/YkLib/Yk/sio_aux.rb +1524 -0
- data/lib/YkLib/Yk/sio_inot.rb +86 -0
- data/lib/YkLib/Yk/sock_aux.rb +42 -0
- data/lib/YkLib/Yk/spipe.rb +843 -0
- data/lib/YkLib/Yk/sql_table.rb +565 -0
- data/lib/YkLib/Yk/stdlog.rb +4 -0
- data/lib/YkLib/Yk/syscommand.rb +173 -0
- data/lib/YkLib/Yk/sysinit.rb +75 -0
- data/lib/YkLib/Yk/ttyFontWidth.rb +46113 -0
- data/lib/YkLib/Yk/tty_char.dump +0 -0
- data/lib/YkLib/Yk/tty_char.rb +47 -0
- data/lib/YkLib/Yk/tty_char_create.rb +437031 -0
- data/lib/YkLib/Yk/tty_char_static.rb +437016 -0
- data/lib/YkLib/Yk/tty_rewrite.rb +142 -0
- data/lib/YkLib/Yk/tty_str.rb +461 -0
- data/lib/YkLib/Yk/tty_width.dat.rb +114 -0
- data/lib/YkLib/Yk/tty_width.rb +180 -0
- data/lib/YkLib/Yk/tty_width_available +569 -0
- data/lib/YkLib/Yk/tty_width_list +0 -0
- data/lib/YkLib/Yk/tty_width_list.linux +280 -0
- data/lib/YkLib/Yk/tty_width_list.windows +324 -0
- data/lib/YkLib/Yk/tz_tty +0 -0
- data/lib/YkLib/Yk/tz_tty.rb +0 -0
- data/lib/YkLib/Yk/uprepos.rb +94 -0
- data/lib/YkLib/Yk/userinfo.rb +91 -0
- data/lib/YkLib/Yk/with.rb +109 -0
- data/lib/YkLib/version.rb +3 -0
- data/lib/YkLib.rb +6 -0
- metadata +170 -0
@@ -0,0 +1,180 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
|
4
|
+
module TTYWidth
|
5
|
+
module_function
|
6
|
+
def width str, tabstop, pos
|
7
|
+
return -1 if pos == -1
|
8
|
+
w = pos
|
9
|
+
str.each_codepoint do |cp|
|
10
|
+
case cp
|
11
|
+
when 0x20 ... 0x7f
|
12
|
+
w += 1
|
13
|
+
when 0x3190 ... 0x4dc0
|
14
|
+
w += 2
|
15
|
+
when 0x09 #tab
|
16
|
+
if tabstop
|
17
|
+
w = (w.div(tabstop) + 1) * tabstop
|
18
|
+
else
|
19
|
+
raise ArgumentError.new("tabstop is not specified, cannot use '\t' for width calculation")
|
20
|
+
end
|
21
|
+
else
|
22
|
+
i = Data.bsearch_index do |item|
|
23
|
+
item[0] > cp
|
24
|
+
end
|
25
|
+
if i
|
26
|
+
tmp = Data[i - 1][1]
|
27
|
+
if tmp == -1
|
28
|
+
if cp > 0x20
|
29
|
+
raise ArgumentError.new("cannot use '#{cp.chr(Encoding::UTF_8)}' for width calculation")
|
30
|
+
elsif cp == "\n"
|
31
|
+
raise ArgumentError.new("cannot use '\\n' for width calculation")
|
32
|
+
elsif cp == "\r"
|
33
|
+
raise ArgumentError.new("cannot use '\\r' for width calculation")
|
34
|
+
else
|
35
|
+
raise ArgumentError.new("cannot use control code, 0x#{cp.to_s(16)} for width calculation")
|
36
|
+
end
|
37
|
+
else
|
38
|
+
w += tmp
|
39
|
+
end
|
40
|
+
else
|
41
|
+
w += 1
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
w
|
46
|
+
end
|
47
|
+
Data = [
|
48
|
+
[0x0000, -1], [0x0020, 1], [0x007f, -1], [0x009b, -1], [0x009c, -1],
|
49
|
+
[0x00a0, 1], [0x00a7, -1], [0x00a9, 1], [0x00b0, -1], [0x00b2, 1],
|
50
|
+
[0x00b4, -1], [0x00b5, 1], [0x00b6, -1], [0x00b7, 1], [0x00d7, -1],
|
51
|
+
[0x00d8, 1], [0x00f7, -1], [0x00f8, 1], [0x01ce, -1], [0x01cf, 1],
|
52
|
+
[0x01d0, -1], [0x01d1, 1], [0x01d2, -1], [0x01d3, 1], [0x01d4, -1],
|
53
|
+
[0x01d5, 1], [0x01d6, -1], [0x01d7, 1], [0x01d8, -1], [0x01d9, 1],
|
54
|
+
[0x01da, -1], [0x01db, 1], [0x01dc, -1], [0x01dd, 1], [0x02ca, -1],
|
55
|
+
[0x02cc, 1], [0x0300, -1], [0x0370, 1], [0x0391, -1], [0x03a2, 1],
|
56
|
+
[0x03a3, -1], [0x03aa, 1], [0x03b1, -1], [0x03c2, 1], [0x03c3, -1],
|
57
|
+
[0x03ca, 1], [0x0401, -1], [0x0402, 1], [0x0410, -1], [0x0450, 1],
|
58
|
+
[0x0451, -1], [0x0452, 1], [0x0483, -1], [0x0487, 1], [0x0488, -1],
|
59
|
+
[0x048a, 1], [0x0591, -1], [0x05be, 1], [0x05bf, -1], [0x05c0, 1],
|
60
|
+
[0x05c1, -1], [0x05c3, 1], [0x05c4, -1], [0x05c6, 1], [0x05c7, -1],
|
61
|
+
[0x05c8, 1], [0x0600, -1], [0x0604, 1], [0x0610, -1], [0x0616, 1],
|
62
|
+
[0x064b, -1], [0x065f, 1], [0x0670, -1], [0x0671, 1], [0x06d6, -1],
|
63
|
+
[0x06e5, 1], [0x06e7, -1], [0x06e9, 1], [0x06ea, -1], [0x06ee, 1],
|
64
|
+
[0x070f, -1], [0x0710, 1], [0x0711, -1], [0x0712, 1], [0x0730, -1],
|
65
|
+
[0x074b, 1], [0x07a6, -1], [0x07b1, 1], [0x07eb, -1], [0x07f4, 1],
|
66
|
+
[0x0901, -1], [0x0903, 1], [0x093c, -1], [0x093d, 1], [0x0941, -1],
|
67
|
+
[0x0949, 1], [0x094d, -1], [0x094e, 1], [0x0951, -1], [0x0955, 1],
|
68
|
+
[0x0962, -1], [0x0964, 1], [0x0981, -1], [0x0982, 1], [0x09bc, -1],
|
69
|
+
[0x09bd, 1], [0x09c1, -1], [0x09c5, 1], [0x09cd, -1], [0x09ce, 1],
|
70
|
+
[0x09e2, -1], [0x09e4, 1], [0x0a01, -1], [0x0a03, 1], [0x0a3c, -1],
|
71
|
+
[0x0a3d, 1], [0x0a41, -1], [0x0a43, 1], [0x0a47, -1], [0x0a49, 1],
|
72
|
+
[0x0a4b, -1], [0x0a4e, 1], [0x0a70, -1], [0x0a72, 1], [0x0a81, -1],
|
73
|
+
[0x0a83, 1], [0x0abc, -1], [0x0abd, 1], [0x0ac1, -1], [0x0ac6, 1],
|
74
|
+
[0x0ac7, -1], [0x0ac9, 1], [0x0acd, -1], [0x0ace, 1], [0x0ae2, -1],
|
75
|
+
[0x0ae4, 1], [0x0b01, -1], [0x0b02, 1], [0x0b3c, -1], [0x0b3d, 1],
|
76
|
+
[0x0b3f, -1], [0x0b40, 1], [0x0b41, -1], [0x0b44, 1], [0x0b4d, -1],
|
77
|
+
[0x0b4e, 1], [0x0b56, -1], [0x0b57, 1], [0x0b82, -1], [0x0b83, 1],
|
78
|
+
[0x0bc0, -1], [0x0bc1, 1], [0x0bcd, -1], [0x0bce, 1], [0x0c3e, -1],
|
79
|
+
[0x0c41, 1], [0x0c46, -1], [0x0c49, 1], [0x0c4a, -1], [0x0c4e, 1],
|
80
|
+
[0x0c55, -1], [0x0c57, 1], [0x0cbc, -1], [0x0cbd, 1], [0x0cbf, -1],
|
81
|
+
[0x0cc0, 1], [0x0cc6, -1], [0x0cc7, 1], [0x0ccc, -1], [0x0cce, 1],
|
82
|
+
[0x0ce2, -1], [0x0ce4, 1], [0x0d41, -1], [0x0d44, 1], [0x0d4d, -1],
|
83
|
+
[0x0d4e, 1], [0x0dca, -1], [0x0dcb, 1], [0x0dd2, -1], [0x0dd5, 1],
|
84
|
+
[0x0dd6, -1], [0x0dd7, 1], [0x0e31, -1], [0x0e32, 1], [0x0e34, -1],
|
85
|
+
[0x0e3b, 1], [0x0e47, -1], [0x0e4f, 1], [0x0eb1, -1], [0x0eb2, 1],
|
86
|
+
[0x0eb4, -1], [0x0eba, 1], [0x0ebb, -1], [0x0ebd, 1], [0x0ec8, -1],
|
87
|
+
[0x0ece, 1], [0x0f18, -1], [0x0f1a, 1], [0x0f35, -1], [0x0f36, 1],
|
88
|
+
[0x0f37, -1], [0x0f38, 1], [0x0f39, -1], [0x0f3a, 1], [0x0f71, -1],
|
89
|
+
[0x0f7f, 1], [0x0f80, -1], [0x0f85, 1], [0x0f86, -1], [0x0f88, 1],
|
90
|
+
[0x0f90, -1], [0x0f98, 1], [0x0f99, -1], [0x0fbd, 1], [0x0fc6, -1],
|
91
|
+
[0x0fc7, 1], [0x102d, -1], [0x1031, 1], [0x1032, -1], [0x1033, 1],
|
92
|
+
[0x1036, -1], [0x1038, 1], [0x1039, -1], [0x103a, 1], [0x1058, -1],
|
93
|
+
[0x105a, 1], [0x1100, 2], [0x1160, -1], [0x1200, 1], [0x135f, -1],
|
94
|
+
[0x1360, 1], [0x1712, -1], [0x1715, 1], [0x1732, -1], [0x1735, 1],
|
95
|
+
[0x1752, -1], [0x1754, 1], [0x1772, -1], [0x1774, 1], [0x17b4, -1],
|
96
|
+
[0x17b6, 1], [0x17b7, -1], [0x17be, 1], [0x17c6, -1], [0x17c7, 1],
|
97
|
+
[0x17c9, -1], [0x17d4, 1], [0x17dd, -1], [0x17de, 1], [0x180b, -1],
|
98
|
+
[0x180e, 1], [0x18a9, -1], [0x18aa, 1], [0x1920, -1], [0x1923, 1],
|
99
|
+
[0x1927, -1], [0x1929, 1], [0x1932, -1], [0x1933, 1], [0x1939, -1],
|
100
|
+
[0x193c, 1], [0x1a17, -1], [0x1a19, 1], [0x1b00, -1], [0x1b04, 1],
|
101
|
+
[0x1b34, -1], [0x1b35, 1], [0x1b36, -1], [0x1b3b, 1], [0x1b3c, -1],
|
102
|
+
[0x1b3d, 1], [0x1b42, -1], [0x1b43, 1], [0x1b6b, -1], [0x1b74, 1],
|
103
|
+
[0x1dc0, -1], [0x1dcb, 1], [0x1dfe, -1], [0x1e00, 1], [0x200b, -1],
|
104
|
+
[0x2011, 1], [0x2015, -1], [0x2017, 1], [0x2018, -1], [0x201a, 1],
|
105
|
+
[0x201c, -1], [0x201e, 1], [0x2020, -1], [0x2022, 1], [0x2025, -1],
|
106
|
+
[0x2027, 1], [0x202a, -1], [0x202f, 1], [0x2030, -1], [0x2031, 1],
|
107
|
+
[0x2032, -1], [0x2034, 1], [0x203b, -1], [0x203c, 1], [0x2060, -1],
|
108
|
+
[0x2064, 1], [0x206a, -1], [0x2070, 1], [0x20d0, -1], [0x20f0, 1],
|
109
|
+
[0x2103, -1], [0x2104, 1], [0x2116, -1], [0x2117, 1], [0x2121, -1],
|
110
|
+
[0x2122, 1], [0x212b, -1], [0x212c, 1], [0x2160, -1], [0x216c, 1],
|
111
|
+
[0x2170, -1], [0x217a, 1], [0x2189, -1], [0x218a, 1], [0x2190, -1],
|
112
|
+
[0x2194, 1], [0x21d2, -1], [0x21d3, 1], [0x21d4, -1], [0x21d5, 1],
|
113
|
+
[0x2200, -1], [0x2201, 1], [0x2202, -1], [0x2204, 1], [0x2207, -1],
|
114
|
+
[0x2209, 1], [0x220b, -1], [0x220c, 1], [0x2211, -1], [0x2212, 1],
|
115
|
+
[0x221a, -1], [0x221b, 1], [0x221d, -1], [0x2221, 1], [0x2225, -1],
|
116
|
+
[0x2226, 1], [0x2227, -1], [0x222d, 1], [0x222e, -1], [0x222f, 1],
|
117
|
+
[0x2234, -1], [0x2236, 1], [0x223d, -1], [0x223e, 1], [0x2252, -1],
|
118
|
+
[0x2253, 1], [0x2260, -1], [0x2262, 1], [0x2266, -1], [0x2268, 1],
|
119
|
+
[0x226a, -1], [0x226c, 1], [0x2282, -1], [0x2284, 1], [0x2286, -1],
|
120
|
+
[0x2288, 1], [0x22a5, -1], [0x22a6, 1], [0x22bf, -1], [0x22c0, 1],
|
121
|
+
[0x2312, -1], [0x2313, 1], [0x231a, -1], [0x231b, 1], [0x2328, -1],
|
122
|
+
[0x2329, 2], [0x232b, 1], [0x23e9, -1], [0x23eb, 1], [0x23ed, -1],
|
123
|
+
[0x23ef, 1], [0x23f0, -1], [0x23f3, 1], [0x23f8, -1], [0x23fb, 1],
|
124
|
+
[0x2460, -1], [0x24ea, 1], [0x24eb, -1], [0x2500, 1], [0x25a0, -1],
|
125
|
+
[0x25a2, 1], [0x25b2, -1], [0x25b4, 1], [0x25bc, -1], [0x25be, 1],
|
126
|
+
[0x25c6, -1], [0x25c8, 1], [0x25cb, -1], [0x25cc, 1], [0x25ce, -1],
|
127
|
+
[0x25d0, 1], [0x25ef, -1], [0x25f0, 1], [0x25fb, -1], [0x25ff, 1],
|
128
|
+
[0x2600, -1], [0x2607, 1], [0x2609, -1], [0x260a, 1], [0x260e, -1],
|
129
|
+
[0x2610, 1], [0x2611, -1], [0x2612, 1], [0x2614, -1], [0x2616, 1],
|
130
|
+
[0x2618, -1], [0x2619, 1], [0x261c, -1], [0x261f, 1], [0x2620, -1],
|
131
|
+
[0x2621, 1], [0x2622, -1], [0x2624, 1], [0x2626, -1], [0x2627, 1],
|
132
|
+
[0x262a, -1], [0x262b, 1], [0x262e, -1], [0x2630, 1], [0x2638, -1],
|
133
|
+
[0x2639, 1], [0x2640, -1], [0x2641, 1], [0x2642, -1], [0x2643, 1],
|
134
|
+
[0x2648, -1], [0x2654, 1], [0x265f, -1], [0x2660, 1], [0x2668, -1],
|
135
|
+
[0x2669, 1], [0x266a, -1], [0x266b, 1], [0x266d, -1], [0x266e, 1],
|
136
|
+
[0x266f, -1], [0x2670, 1], [0x267b, -1], [0x267c, 1], [0x267e, -1],
|
137
|
+
[0x267f, 1], [0x2692, -1], [0x2693, 1], [0x2694, -1], [0x2695, 1],
|
138
|
+
[0x2696, -1], [0x2698, 1], [0x2699, -1], [0x269a, 1], [0x269b, -1],
|
139
|
+
[0x269d, 1], [0x269e, -1], [0x26a1, 1], [0x26aa, -1], [0x26ac, 1],
|
140
|
+
[0x26b0, -1], [0x26b1, 1], [0x26bd, -1], [0x26c0, 1], [0x26c4, -1],
|
141
|
+
[0x26e2, 1], [0x26e3, -1], [0x26e4, 1], [0x26e8, -1], [0x2700, 1],
|
142
|
+
[0x2702, -1], [0x2703, 1], [0x2705, -1], [0x2706, 1], [0x2708, -1],
|
143
|
+
[0x270e, 1], [0x270f, -1], [0x2710, 1], [0x2712, -1], [0x2713, 1],
|
144
|
+
[0x2714, -1], [0x2715, 1], [0x2716, -1], [0x2717, 1], [0x271d, -1],
|
145
|
+
[0x271e, 1], [0x2721, -1], [0x2722, 1], [0x2728, -1], [0x2729, 1],
|
146
|
+
[0x2733, -1], [0x2735, 1], [0x273d, -1], [0x273e, 1], [0x2744, -1],
|
147
|
+
[0x2745, 1], [0x2747, -1], [0x2748, 1], [0x274c, -1], [0x274d, 1],
|
148
|
+
[0x274e, -1], [0x274f, 1], [0x2753, -1], [0x2755, 1], [0x2763, -1],
|
149
|
+
[0x2765, 1], [0x2776, -1], [0x2780, 1], [0x2795, -1], [0x2798, 1],
|
150
|
+
[0x27a1, -1], [0x27a2, 1], [0x27b0, -1], [0x27b1, 1], [0x27bf, -1],
|
151
|
+
[0x27c0, 1], [0x2b05, -1], [0x2b08, 1], [0x2b1b, -1], [0x2b1d, 1],
|
152
|
+
[0x2b50, -1], [0x2b51, 1], [0x2b55, -1], [0x2b5a, 1], [0x2e80, 2],
|
153
|
+
[0x302a, -1], [0x3030, 2], [0x303f, 1], [0x3040, -1], [0x3041, 2],
|
154
|
+
[0x3097, -1], [0x309b, 2], [0x3100, -1], [0x3105, 2], [0x312f, -1],
|
155
|
+
[0x3131, 2], [0x318f, -1], [0x3190, 2], [0x4dc0, -1], [0x4e00, 2],
|
156
|
+
[0xa4c7, -1], [0xa4d0, 1], [0xa806, -1], [0xa807, 1], [0xa80b, -1],
|
157
|
+
[0xa80c, 1], [0xa825, -1], [0xa827, 1], [0xa960, -1], [0xa97d, 1],
|
158
|
+
[0xac00, 2], [0xd7a4, 1], [0xd800, -1], [0xf900, 2], [0xfb00, 1],
|
159
|
+
[0xfb1e, -1], [0xfb1f, 1], [0xfe00, -1], [0xfe24, 1], [0xfe30, 2],
|
160
|
+
[0xfe6c, -1], [0xfe70, 1], [0xfeff, -1], [0xff01, 2], [0xff61, 1],
|
161
|
+
[0xffe0, 2], [0xffe7, 1], [0xfff9, -1], [0xfffc, 1]
|
162
|
+
]
|
163
|
+
end
|
164
|
+
|
165
|
+
if File.expand_path(__FILE__) == File.expand_path($0)
|
166
|
+
1.upto 0xffff do |i|
|
167
|
+
w = nil
|
168
|
+
c = nil
|
169
|
+
begin
|
170
|
+
c = i.chr(Encoding::UTF_8)
|
171
|
+
w = TTYWidth.width(c, 4, 0)
|
172
|
+
rescue ArgumentError
|
173
|
+
rescue RangeError
|
174
|
+
else
|
175
|
+
if w != -1
|
176
|
+
print "0x#{i.to_s(16)}:'#{c*50}' #{w}\n"
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
180
|
+
end
|
@@ -0,0 +1,569 @@
|
|
1
|
+
0 -1
|
2
|
+
20 1
|
3
|
+
7f -1
|
4
|
+
9b -1
|
5
|
+
9c -1
|
6
|
+
a0 1
|
7
|
+
a7 -1
|
8
|
+
a9 1
|
9
|
+
b0 -1
|
10
|
+
b2 1
|
11
|
+
b4 -1
|
12
|
+
b5 1
|
13
|
+
b6 -1
|
14
|
+
b7 1
|
15
|
+
d7 -1
|
16
|
+
d8 1
|
17
|
+
f7 -1
|
18
|
+
f8 1
|
19
|
+
1ce -1
|
20
|
+
1cf 1
|
21
|
+
1d0 -1
|
22
|
+
1d1 1
|
23
|
+
1d2 -1
|
24
|
+
1d3 1
|
25
|
+
1d4 -1
|
26
|
+
1d5 1
|
27
|
+
1d6 -1
|
28
|
+
1d7 1
|
29
|
+
1d8 -1
|
30
|
+
1d9 1
|
31
|
+
1da -1
|
32
|
+
1db 1
|
33
|
+
1dc -1
|
34
|
+
1dd 1
|
35
|
+
2ca -1
|
36
|
+
2cc 1
|
37
|
+
300 -1
|
38
|
+
370 1
|
39
|
+
391 -1
|
40
|
+
3a2 1
|
41
|
+
3a3 -1
|
42
|
+
3aa 1
|
43
|
+
3b1 -1
|
44
|
+
3c2 1
|
45
|
+
3c3 -1
|
46
|
+
3ca 1
|
47
|
+
401 -1
|
48
|
+
402 1
|
49
|
+
410 -1
|
50
|
+
450 1
|
51
|
+
451 -1
|
52
|
+
452 1
|
53
|
+
483 -1
|
54
|
+
487 1
|
55
|
+
488 -1
|
56
|
+
48a 1
|
57
|
+
591 -1
|
58
|
+
5be 1
|
59
|
+
5bf -1
|
60
|
+
5c0 1
|
61
|
+
5c1 -1
|
62
|
+
5c3 1
|
63
|
+
5c4 -1
|
64
|
+
5c6 1
|
65
|
+
5c7 -1
|
66
|
+
5c8 1
|
67
|
+
600 -1
|
68
|
+
604 1
|
69
|
+
610 -1
|
70
|
+
616 1
|
71
|
+
64b -1
|
72
|
+
65f 1
|
73
|
+
670 -1
|
74
|
+
671 1
|
75
|
+
6d6 -1
|
76
|
+
6e5 1
|
77
|
+
6e7 -1
|
78
|
+
6e9 1
|
79
|
+
6ea -1
|
80
|
+
6ee 1
|
81
|
+
70f -1
|
82
|
+
710 1
|
83
|
+
711 -1
|
84
|
+
712 1
|
85
|
+
730 -1
|
86
|
+
74b 1
|
87
|
+
7a6 -1
|
88
|
+
7b1 1
|
89
|
+
7eb -1
|
90
|
+
7f4 1
|
91
|
+
901 -1
|
92
|
+
903 1
|
93
|
+
93c -1
|
94
|
+
93d 1
|
95
|
+
941 -1
|
96
|
+
949 1
|
97
|
+
94d -1
|
98
|
+
94e 1
|
99
|
+
951 -1
|
100
|
+
955 1
|
101
|
+
962 -1
|
102
|
+
964 1
|
103
|
+
981 -1
|
104
|
+
982 1
|
105
|
+
9bc -1
|
106
|
+
9bd 1
|
107
|
+
9c1 -1
|
108
|
+
9c5 1
|
109
|
+
9cd -1
|
110
|
+
9ce 1
|
111
|
+
9e2 -1
|
112
|
+
9e4 1
|
113
|
+
a01 -1
|
114
|
+
a03 1
|
115
|
+
a3c -1
|
116
|
+
a3d 1
|
117
|
+
a41 -1
|
118
|
+
a43 1
|
119
|
+
a47 -1
|
120
|
+
a49 1
|
121
|
+
a4b -1
|
122
|
+
a4e 1
|
123
|
+
a70 -1
|
124
|
+
a72 1
|
125
|
+
a81 -1
|
126
|
+
a83 1
|
127
|
+
abc -1
|
128
|
+
abd 1
|
129
|
+
ac1 -1
|
130
|
+
ac6 1
|
131
|
+
ac7 -1
|
132
|
+
ac9 1
|
133
|
+
acd -1
|
134
|
+
ace 1
|
135
|
+
ae2 -1
|
136
|
+
ae4 1
|
137
|
+
b01 -1
|
138
|
+
b02 1
|
139
|
+
b3c -1
|
140
|
+
b3d 1
|
141
|
+
b3f -1
|
142
|
+
b40 1
|
143
|
+
b41 -1
|
144
|
+
b44 1
|
145
|
+
b4d -1
|
146
|
+
b4e 1
|
147
|
+
b56 -1
|
148
|
+
b57 1
|
149
|
+
b82 -1
|
150
|
+
b83 1
|
151
|
+
bc0 -1
|
152
|
+
bc1 1
|
153
|
+
bcd -1
|
154
|
+
bce 1
|
155
|
+
c3e -1
|
156
|
+
c41 1
|
157
|
+
c46 -1
|
158
|
+
c49 1
|
159
|
+
c4a -1
|
160
|
+
c4e 1
|
161
|
+
c55 -1
|
162
|
+
c57 1
|
163
|
+
cbc -1
|
164
|
+
cbd 1
|
165
|
+
cbf -1
|
166
|
+
cc0 1
|
167
|
+
cc6 -1
|
168
|
+
cc7 1
|
169
|
+
ccc -1
|
170
|
+
cce 1
|
171
|
+
ce2 -1
|
172
|
+
ce4 1
|
173
|
+
d41 -1
|
174
|
+
d44 1
|
175
|
+
d4d -1
|
176
|
+
d4e 1
|
177
|
+
dca -1
|
178
|
+
dcb 1
|
179
|
+
dd2 -1
|
180
|
+
dd5 1
|
181
|
+
dd6 -1
|
182
|
+
dd7 1
|
183
|
+
e31 -1
|
184
|
+
e32 1
|
185
|
+
e34 -1
|
186
|
+
e3b 1
|
187
|
+
e47 -1
|
188
|
+
e4f 1
|
189
|
+
eb1 -1
|
190
|
+
eb2 1
|
191
|
+
eb4 -1
|
192
|
+
eba 1
|
193
|
+
ebb -1
|
194
|
+
ebd 1
|
195
|
+
ec8 -1
|
196
|
+
ece 1
|
197
|
+
f18 -1
|
198
|
+
f1a 1
|
199
|
+
f35 -1
|
200
|
+
f36 1
|
201
|
+
f37 -1
|
202
|
+
f38 1
|
203
|
+
f39 -1
|
204
|
+
f3a 1
|
205
|
+
f71 -1
|
206
|
+
f7f 1
|
207
|
+
f80 -1
|
208
|
+
f85 1
|
209
|
+
f86 -1
|
210
|
+
f88 1
|
211
|
+
f90 -1
|
212
|
+
f98 1
|
213
|
+
f99 -1
|
214
|
+
fbd 1
|
215
|
+
fc6 -1
|
216
|
+
fc7 1
|
217
|
+
102d -1
|
218
|
+
1031 1
|
219
|
+
1032 -1
|
220
|
+
1033 1
|
221
|
+
1036 -1
|
222
|
+
1038 1
|
223
|
+
1039 -1
|
224
|
+
103a 1
|
225
|
+
1058 -1
|
226
|
+
105a 1
|
227
|
+
1100 2
|
228
|
+
1160 -1
|
229
|
+
1200 1
|
230
|
+
135f -1
|
231
|
+
1360 1
|
232
|
+
1712 -1
|
233
|
+
1715 1
|
234
|
+
1732 -1
|
235
|
+
1735 1
|
236
|
+
1752 -1
|
237
|
+
1754 1
|
238
|
+
1772 -1
|
239
|
+
1774 1
|
240
|
+
17b4 -1
|
241
|
+
17b6 1
|
242
|
+
17b7 -1
|
243
|
+
17be 1
|
244
|
+
17c6 -1
|
245
|
+
17c7 1
|
246
|
+
17c9 -1
|
247
|
+
17d4 1
|
248
|
+
17dd -1
|
249
|
+
17de 1
|
250
|
+
180b -1
|
251
|
+
180e 1
|
252
|
+
18a9 -1
|
253
|
+
18aa 1
|
254
|
+
1920 -1
|
255
|
+
1923 1
|
256
|
+
1927 -1
|
257
|
+
1929 1
|
258
|
+
1932 -1
|
259
|
+
1933 1
|
260
|
+
1939 -1
|
261
|
+
193c 1
|
262
|
+
1a17 -1
|
263
|
+
1a19 1
|
264
|
+
1b00 -1
|
265
|
+
1b04 1
|
266
|
+
1b34 -1
|
267
|
+
1b35 1
|
268
|
+
1b36 -1
|
269
|
+
1b3b 1
|
270
|
+
1b3c -1
|
271
|
+
1b3d 1
|
272
|
+
1b42 -1
|
273
|
+
1b43 1
|
274
|
+
1b6b -1
|
275
|
+
1b74 1
|
276
|
+
1dc0 -1
|
277
|
+
1dcb 1
|
278
|
+
1dfe -1
|
279
|
+
1e00 1
|
280
|
+
200b -1
|
281
|
+
2011 1
|
282
|
+
2015 -1
|
283
|
+
2017 1
|
284
|
+
2018 -1
|
285
|
+
201a 1
|
286
|
+
201c -1
|
287
|
+
201e 1
|
288
|
+
2020 -1
|
289
|
+
2022 1
|
290
|
+
2025 -1
|
291
|
+
2027 1
|
292
|
+
202a -1
|
293
|
+
202f 1
|
294
|
+
2030 -1
|
295
|
+
2031 1
|
296
|
+
2032 -1
|
297
|
+
2034 1
|
298
|
+
203b -1
|
299
|
+
203c 1
|
300
|
+
2060 -1
|
301
|
+
2064 1
|
302
|
+
206a -1
|
303
|
+
2070 1
|
304
|
+
20d0 -1
|
305
|
+
20f0 1
|
306
|
+
2103 -1
|
307
|
+
2104 1
|
308
|
+
2116 -1
|
309
|
+
2117 1
|
310
|
+
2121 -1
|
311
|
+
2122 1
|
312
|
+
212b -1
|
313
|
+
212c 1
|
314
|
+
2160 -1
|
315
|
+
216c 1
|
316
|
+
2170 -1
|
317
|
+
217a 1
|
318
|
+
2189 -1
|
319
|
+
218a 1
|
320
|
+
2190 -1
|
321
|
+
2194 1
|
322
|
+
21d2 -1
|
323
|
+
21d3 1
|
324
|
+
21d4 -1
|
325
|
+
21d5 1
|
326
|
+
2200 -1
|
327
|
+
2201 1
|
328
|
+
2202 -1
|
329
|
+
2204 1
|
330
|
+
2207 -1
|
331
|
+
2209 1
|
332
|
+
220b -1
|
333
|
+
220c 1
|
334
|
+
2211 -1
|
335
|
+
2212 1
|
336
|
+
221a -1
|
337
|
+
221b 1
|
338
|
+
221d -1
|
339
|
+
2221 1
|
340
|
+
2225 -1
|
341
|
+
2226 1
|
342
|
+
2227 -1
|
343
|
+
222d 1
|
344
|
+
222e -1
|
345
|
+
222f 1
|
346
|
+
2234 -1
|
347
|
+
2236 1
|
348
|
+
223d -1
|
349
|
+
223e 1
|
350
|
+
2252 -1
|
351
|
+
2253 1
|
352
|
+
2260 -1
|
353
|
+
2262 1
|
354
|
+
2266 -1
|
355
|
+
2268 1
|
356
|
+
226a -1
|
357
|
+
226c 1
|
358
|
+
2282 -1
|
359
|
+
2284 1
|
360
|
+
2286 -1
|
361
|
+
2288 1
|
362
|
+
22a5 -1
|
363
|
+
22a6 1
|
364
|
+
22bf -1
|
365
|
+
22c0 1
|
366
|
+
2312 -1
|
367
|
+
2313 1
|
368
|
+
231a -1
|
369
|
+
231b 1
|
370
|
+
2328 -1
|
371
|
+
2329 2
|
372
|
+
232b 1
|
373
|
+
23e9 -1
|
374
|
+
23eb 1
|
375
|
+
23ed -1
|
376
|
+
23ef 1
|
377
|
+
23f0 -1
|
378
|
+
23f3 1
|
379
|
+
23f8 -1
|
380
|
+
23fb 1
|
381
|
+
2460 -1
|
382
|
+
24ea 1
|
383
|
+
24eb -1
|
384
|
+
2500 1
|
385
|
+
25a0 -1
|
386
|
+
25a2 1
|
387
|
+
25b2 -1
|
388
|
+
25b4 1
|
389
|
+
25bc -1
|
390
|
+
25be 1
|
391
|
+
25c6 -1
|
392
|
+
25c8 1
|
393
|
+
25cb -1
|
394
|
+
25cc 1
|
395
|
+
25ce -1
|
396
|
+
25d0 1
|
397
|
+
25ef -1
|
398
|
+
25f0 1
|
399
|
+
25fb -1
|
400
|
+
25ff 1
|
401
|
+
2600 -1
|
402
|
+
2607 1
|
403
|
+
2609 -1
|
404
|
+
260a 1
|
405
|
+
260e -1
|
406
|
+
2610 1
|
407
|
+
2611 -1
|
408
|
+
2612 1
|
409
|
+
2614 -1
|
410
|
+
2616 1
|
411
|
+
2618 -1
|
412
|
+
2619 1
|
413
|
+
261c -1
|
414
|
+
261f 1
|
415
|
+
2620 -1
|
416
|
+
2621 1
|
417
|
+
2622 -1
|
418
|
+
2624 1
|
419
|
+
2626 -1
|
420
|
+
2627 1
|
421
|
+
262a -1
|
422
|
+
262b 1
|
423
|
+
262e -1
|
424
|
+
2630 1
|
425
|
+
2638 -1
|
426
|
+
2639 1
|
427
|
+
2640 -1
|
428
|
+
2641 1
|
429
|
+
2642 -1
|
430
|
+
2643 1
|
431
|
+
2648 -1
|
432
|
+
2654 1
|
433
|
+
265f -1
|
434
|
+
2660 1
|
435
|
+
2668 -1
|
436
|
+
2669 1
|
437
|
+
266a -1
|
438
|
+
266b 1
|
439
|
+
266d -1
|
440
|
+
266e 1
|
441
|
+
266f -1
|
442
|
+
2670 1
|
443
|
+
267b -1
|
444
|
+
267c 1
|
445
|
+
267e -1
|
446
|
+
267f 1
|
447
|
+
2692 -1
|
448
|
+
2693 1
|
449
|
+
2694 -1
|
450
|
+
2695 1
|
451
|
+
2696 -1
|
452
|
+
2698 1
|
453
|
+
2699 -1
|
454
|
+
269a 1
|
455
|
+
269b -1
|
456
|
+
269d 1
|
457
|
+
269e -1
|
458
|
+
26a1 1
|
459
|
+
26aa -1
|
460
|
+
26ac 1
|
461
|
+
26b0 -1
|
462
|
+
26b1 1
|
463
|
+
26bd -1
|
464
|
+
26c0 1
|
465
|
+
26c4 -1
|
466
|
+
26e2 1
|
467
|
+
26e3 -1
|
468
|
+
26e4 1
|
469
|
+
26e8 -1
|
470
|
+
2700 1
|
471
|
+
2702 -1
|
472
|
+
2703 1
|
473
|
+
2705 -1
|
474
|
+
2706 1
|
475
|
+
2708 -1
|
476
|
+
270e 1
|
477
|
+
270f -1
|
478
|
+
2710 1
|
479
|
+
2712 -1
|
480
|
+
2713 1
|
481
|
+
2714 -1
|
482
|
+
2715 1
|
483
|
+
2716 -1
|
484
|
+
2717 1
|
485
|
+
271d -1
|
486
|
+
271e 1
|
487
|
+
2721 -1
|
488
|
+
2722 1
|
489
|
+
2728 -1
|
490
|
+
2729 1
|
491
|
+
2733 -1
|
492
|
+
2735 1
|
493
|
+
273d -1
|
494
|
+
273e 1
|
495
|
+
2744 -1
|
496
|
+
2745 1
|
497
|
+
2747 -1
|
498
|
+
2748 1
|
499
|
+
274c -1
|
500
|
+
274d 1
|
501
|
+
274e -1
|
502
|
+
274f 1
|
503
|
+
2753 -1
|
504
|
+
2755 1
|
505
|
+
2763 -1
|
506
|
+
2765 1
|
507
|
+
2776 -1
|
508
|
+
2780 1
|
509
|
+
2795 -1
|
510
|
+
2798 1
|
511
|
+
27a1 -1
|
512
|
+
27a2 1
|
513
|
+
27b0 -1
|
514
|
+
27b1 1
|
515
|
+
27bf -1
|
516
|
+
27c0 1
|
517
|
+
2b05 -1
|
518
|
+
2b08 1
|
519
|
+
2b1b -1
|
520
|
+
2b1d 1
|
521
|
+
2b50 -1
|
522
|
+
2b51 1
|
523
|
+
2b55 -1
|
524
|
+
2b5a 1
|
525
|
+
2e80 2
|
526
|
+
302a -1
|
527
|
+
3030 2
|
528
|
+
303f 1
|
529
|
+
3040 -1
|
530
|
+
3041 2
|
531
|
+
3097 -1
|
532
|
+
309b 2
|
533
|
+
3100 -1
|
534
|
+
3105 2
|
535
|
+
312f -1
|
536
|
+
3131 2
|
537
|
+
318f -1
|
538
|
+
3190 2
|
539
|
+
4dc0 -1
|
540
|
+
4e00 2
|
541
|
+
a4c7 -1
|
542
|
+
a4d0 1
|
543
|
+
a806 -1
|
544
|
+
a807 1
|
545
|
+
a80b -1
|
546
|
+
a80c 1
|
547
|
+
a825 -1
|
548
|
+
a827 1
|
549
|
+
a960 -1
|
550
|
+
a97d 1
|
551
|
+
ac00 2
|
552
|
+
d7a4 1
|
553
|
+
d800 -1
|
554
|
+
f900 2
|
555
|
+
fb00 1
|
556
|
+
fb1e -1
|
557
|
+
fb1f 1
|
558
|
+
fe00 -1
|
559
|
+
fe24 1
|
560
|
+
fe30 2
|
561
|
+
fe6c -1
|
562
|
+
fe70 1
|
563
|
+
feff -1
|
564
|
+
ff01 2
|
565
|
+
ff61 1
|
566
|
+
ffe0 2
|
567
|
+
ffe7 1
|
568
|
+
fff9 -1
|
569
|
+
fffc 1
|
File without changes
|