]>
Commit | Line | Data |
---|---|---|
ef60e50e DI |
1 | /** |
2 | * @license MIT | |
3 | */ | |
4 | ||
ef60e50e DI |
5 | /** |
6 | * The character sets supported by the terminal. These enable several languages | |
7 | * to be represented within the terminal with only 8-bit encoding. See ISO 2022 | |
aab67c2e | 8 | * for a discussion on character sets. Only VT100 character sets are supported. |
ef60e50e | 9 | */ |
aab67c2e DI |
10 | export const CHARSETS: {[key: string]: {[key: string]: string}} = {}; |
11 | ||
12 | /** | |
13 | * The default character set, US. | |
14 | */ | |
15 | export const DEFAULT_CHARSET = CHARSETS['B']; | |
1848fff4 | 16 | |
b5d16ed7 DI |
17 | /** |
18 | * DEC Special Character and Line Drawing Set. | |
19 | * Reference: http://vt100.net/docs/vt102-ug/table5-13.html | |
20 | * A lot of curses apps use this if they see TERM=xterm. | |
21 | * testing: echo -e '\e(0a\e(B' | |
22 | * The xterm output sometimes seems to conflict with the | |
23 | * reference above. xterm seems in line with the reference | |
24 | * when running vttest however. | |
25 | * The table below now uses xterm's output from vttest. | |
26 | */ | |
aab67c2e | 27 | CHARSETS['0'] = { |
1848fff4 DI |
28 | '`': '\u25c6', // '◆' |
29 | 'a': '\u2592', // '▒' | |
30 | 'b': '\u0009', // '\t' | |
31 | 'c': '\u000c', // '\f' | |
32 | 'd': '\u000d', // '\r' | |
33 | 'e': '\u000a', // '\n' | |
34 | 'f': '\u00b0', // '°' | |
35 | 'g': '\u00b1', // '±' | |
36 | 'h': '\u2424', // '\u2424' (NL) | |
37 | 'i': '\u000b', // '\v' | |
38 | 'j': '\u2518', // '┘' | |
39 | 'k': '\u2510', // '┐' | |
40 | 'l': '\u250c', // '┌' | |
41 | 'm': '\u2514', // '└' | |
42 | 'n': '\u253c', // '┼' | |
43 | 'o': '\u23ba', // '⎺' | |
44 | 'p': '\u23bb', // '⎻' | |
45 | 'q': '\u2500', // '─' | |
46 | 'r': '\u23bc', // '⎼' | |
47 | 's': '\u23bd', // '⎽' | |
48 | 't': '\u251c', // '├' | |
49 | 'u': '\u2524', // '┤' | |
50 | 'v': '\u2534', // '┴' | |
51 | 'w': '\u252c', // '┬' | |
52 | 'x': '\u2502', // '│' | |
53 | 'y': '\u2264', // '≤' | |
54 | 'z': '\u2265', // '≥' | |
55 | '{': '\u03c0', // 'π' | |
56 | '|': '\u2260', // '≠' | |
57 | '}': '\u00a3', // '£' | |
58 | '~': '\u00b7' // '·' | |
59 | }; | |
60 | ||
0461a822 DI |
61 | /** |
62 | * British character set | |
63 | * ESC (A | |
64 | * Reference: http://vt100.net/docs/vt220-rm/table2-5.html | |
65 | */ | |
aab67c2e | 66 | CHARSETS['A'] = { |
0461a822 DI |
67 | '#': '£' |
68 | }; | |
69 | ||
70 | /** | |
71 | * United States character set | |
72 | * ESC (B | |
73 | */ | |
aab67c2e | 74 | CHARSETS['B'] = null; |
0461a822 DI |
75 | |
76 | /** | |
77 | * Dutch character set | |
78 | * ESC (4 | |
79 | * Reference: http://vt100.net/docs/vt220-rm/table2-6.html | |
80 | */ | |
aab67c2e | 81 | CHARSETS['4'] = { |
0461a822 DI |
82 | '#': '£', |
83 | '@': '¾', | |
84 | '[': 'ij', | |
85 | '\\': '½', | |
86 | ']': '|', | |
87 | '{': '¨', | |
88 | '|': 'f', | |
89 | '}': '¼', | |
90 | '~': '´' | |
91 | }; | |
92 | ||
93 | /** | |
94 | * Finnish character set | |
95 | * ESC (C or ESC (5 | |
96 | * Reference: http://vt100.net/docs/vt220-rm/table2-7.html | |
97 | */ | |
aab67c2e DI |
98 | CHARSETS['C'] = |
99 | CHARSETS['5'] = { | |
0461a822 DI |
100 | '[': 'Ä', |
101 | '\\': 'Ö', | |
102 | ']': 'Å', | |
103 | '^': 'Ü', | |
104 | '`': 'é', | |
105 | '{': 'ä', | |
106 | '|': 'ö', | |
107 | '}': 'å', | |
108 | '~': 'ü' | |
109 | }; | |
110 | ||
111 | /** | |
112 | * French character set | |
113 | * ESC (R | |
114 | * Reference: http://vt100.net/docs/vt220-rm/table2-8.html | |
115 | */ | |
aab67c2e | 116 | CHARSETS['R'] = { |
0461a822 DI |
117 | '#': '£', |
118 | '@': 'à', | |
119 | '[': '°', | |
120 | '\\': 'ç', | |
121 | ']': '§', | |
122 | '{': 'é', | |
123 | '|': 'ù', | |
124 | '}': 'è', | |
125 | '~': '¨' | |
126 | }; | |
127 | ||
128 | /** | |
129 | * French Canadian character set | |
130 | * ESC (Q | |
131 | * Reference: http://vt100.net/docs/vt220-rm/table2-9.html | |
132 | */ | |
aab67c2e | 133 | CHARSETS['Q'] = { |
0461a822 DI |
134 | '@': 'à', |
135 | '[': 'â', | |
136 | '\\': 'ç', | |
137 | ']': 'ê', | |
138 | '^': 'î', | |
139 | '`': 'ô', | |
140 | '{': 'é', | |
141 | '|': 'ù', | |
142 | '}': 'è', | |
143 | '~': 'û' | |
144 | }; | |
145 | ||
146 | /** | |
147 | * German character set | |
148 | * ESC (K | |
149 | * Reference: http://vt100.net/docs/vt220-rm/table2-10.html | |
150 | */ | |
aab67c2e | 151 | CHARSETS['K'] = { |
0461a822 DI |
152 | '@': '§', |
153 | '[': 'Ä', | |
154 | '\\': 'Ö', | |
155 | ']': 'Ü', | |
156 | '{': 'ä', | |
157 | '|': 'ö', | |
158 | '}': 'ü', | |
159 | '~': 'ß' | |
160 | }; | |
161 | ||
162 | /** | |
163 | * Italian character set | |
164 | * ESC (Y | |
165 | * Reference: http://vt100.net/docs/vt220-rm/table2-11.html | |
166 | */ | |
aab67c2e | 167 | CHARSETS['Y'] = { |
0461a822 DI |
168 | '#': '£', |
169 | '@': '§', | |
170 | '[': '°', | |
171 | '\\': 'ç', | |
172 | ']': 'é', | |
173 | '`': 'ù', | |
174 | '{': 'à', | |
175 | '|': 'ò', | |
176 | '}': 'è', | |
177 | '~': 'ì' | |
178 | }; | |
179 | ||
180 | /** | |
181 | * Norwegian/Danish character set | |
182 | * ESC (E or ESC (6 | |
183 | * Reference: http://vt100.net/docs/vt220-rm/table2-12.html | |
184 | */ | |
aab67c2e DI |
185 | CHARSETS['E'] = |
186 | CHARSETS['6'] = { | |
0461a822 DI |
187 | '@': 'Ä', |
188 | '[': 'Æ', | |
189 | '\\': 'Ø', | |
190 | ']': 'Å', | |
191 | '^': 'Ü', | |
192 | '`': 'ä', | |
193 | '{': 'æ', | |
194 | '|': 'ø', | |
195 | '}': 'å', | |
196 | '~': 'ü' | |
197 | }; | |
198 | ||
199 | /** | |
200 | * Spanish character set | |
201 | * ESC (Z | |
202 | * Reference: http://vt100.net/docs/vt220-rm/table2-13.html | |
203 | */ | |
aab67c2e | 204 | CHARSETS['Z'] = { |
0461a822 DI |
205 | '#': '£', |
206 | '@': '§', | |
207 | '[': '¡', | |
208 | '\\': 'Ñ', | |
209 | ']': '¿', | |
210 | '{': '°', | |
211 | '|': 'ñ', | |
212 | '}': 'ç' | |
213 | }; | |
214 | ||
215 | /** | |
216 | * Swedish character set | |
217 | * ESC (H or ESC (7 | |
218 | * Reference: http://vt100.net/docs/vt220-rm/table2-14.html | |
219 | */ | |
aab67c2e DI |
220 | CHARSETS['H'] = |
221 | CHARSETS['7'] = { | |
0461a822 DI |
222 | '@': 'É', |
223 | '[': 'Ä', | |
224 | '\\': 'Ö', | |
225 | ']': 'Å', | |
226 | '^': 'Ü', | |
227 | '`': 'é', | |
228 | '{': 'ä', | |
229 | '|': 'ö', | |
230 | '}': 'å', | |
231 | '~': 'ü' | |
232 | }; | |
233 | ||
234 | /** | |
235 | * Swiss character set | |
236 | * ESC (= | |
237 | * Reference: http://vt100.net/docs/vt220-rm/table2-15.html | |
238 | */ | |
aab67c2e | 239 | CHARSETS['='] = { |
0461a822 DI |
240 | '#': 'ù', |
241 | '@': 'à', | |
242 | '[': 'é', | |
243 | '\\': 'ç', | |
244 | ']': 'ê', | |
245 | '^': 'î', | |
246 | '_': 'è', | |
247 | '`': 'ô', | |
248 | '{': 'ä', | |
249 | '|': 'ö', | |
250 | '}': 'ü', | |
251 | '~': 'û' | |
252 | }; |