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