]> git.proxmox.com Git - mirror_xterm.js.git/blob - src/Charsets.ts
Merge pull request #926 from ficristo/search-fix
[mirror_xterm.js.git] / src / Charsets.ts
1 /**
2 * @license MIT
3 */
4
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
8 * for a discussion on character sets. Only VT100 character sets are supported.
9 */
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'];
16
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 */
27 CHARSETS['0'] = {
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
61 /**
62 * British character set
63 * ESC (A
64 * Reference: http://vt100.net/docs/vt220-rm/table2-5.html
65 */
66 CHARSETS['A'] = {
67 '#': '£'
68 };
69
70 /**
71 * United States character set
72 * ESC (B
73 */
74 CHARSETS['B'] = null;
75
76 /**
77 * Dutch character set
78 * ESC (4
79 * Reference: http://vt100.net/docs/vt220-rm/table2-6.html
80 */
81 CHARSETS['4'] = {
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 */
98 CHARSETS['C'] =
99 CHARSETS['5'] = {
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 */
116 CHARSETS['R'] = {
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 */
133 CHARSETS['Q'] = {
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 */
151 CHARSETS['K'] = {
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 */
167 CHARSETS['Y'] = {
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 */
185 CHARSETS['E'] =
186 CHARSETS['6'] = {
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 */
204 CHARSETS['Z'] = {
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 */
220 CHARSETS['H'] =
221 CHARSETS['7'] = {
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 */
239 CHARSETS['='] = {
240 '#': 'ù',
241 '@': 'à',
242 '[': 'é',
243 '\\': 'ç',
244 ']': 'ê',
245 '^': 'î',
246 '_': 'è',
247 '`': 'ô',
248 '{': 'ä',
249 '|': 'ö',
250 '}': 'ü',
251 '~': 'û'
252 };