xref: /vim-8.2.3635/src/libvterm/t/02parser.test (revision 83a52533)
1e4f25e4aSBram MoolenaarINIT
2e4f25e4aSBram MoolenaarUTF8 0
3e4f25e4aSBram MoolenaarWANTPARSER
4e4f25e4aSBram Moolenaar
5e4f25e4aSBram Moolenaar!Basic text
6e4f25e4aSBram MoolenaarPUSH "hello"
7e4f25e4aSBram Moolenaar  text 0x68, 0x65, 0x6c, 0x6c, 0x6f
8e4f25e4aSBram Moolenaar
9e4f25e4aSBram Moolenaar!C0
10e4f25e4aSBram MoolenaarPUSH "\x03"
11e4f25e4aSBram Moolenaar  control 3
12e4f25e4aSBram Moolenaar
13e4f25e4aSBram MoolenaarPUSH "\x1f"
14e4f25e4aSBram Moolenaar  control 0x1f
15e4f25e4aSBram Moolenaar
16e4f25e4aSBram Moolenaar!C1 8bit
17e4f25e4aSBram MoolenaarPUSH "\x83"
18e4f25e4aSBram Moolenaar  control 0x83
19e4f25e4aSBram Moolenaar
20e4f25e4aSBram MoolenaarPUSH "\x9f"
21e4f25e4aSBram Moolenaar  control 0x9f
22e4f25e4aSBram Moolenaar
23e4f25e4aSBram Moolenaar!C1 7bit
24e4f25e4aSBram MoolenaarPUSH "\e\x43"
25e4f25e4aSBram Moolenaar  control 0x83
26e4f25e4aSBram Moolenaar
27e4f25e4aSBram MoolenaarPUSH "\e\x5f"
28e4f25e4aSBram Moolenaar  control 0x9f
29e4f25e4aSBram Moolenaar
30e4f25e4aSBram Moolenaar!High bytes
31e4f25e4aSBram MoolenaarPUSH "\xa0\xcc\xfe"
32e4f25e4aSBram Moolenaar  text 0xa0, 0xcc, 0xfe
33e4f25e4aSBram Moolenaar
34e4f25e4aSBram Moolenaar!Mixed
35e4f25e4aSBram MoolenaarPUSH "1\n2"
36e4f25e4aSBram Moolenaar  text 0x31
37e4f25e4aSBram Moolenaar  control 10
38e4f25e4aSBram Moolenaar  text 0x32
39e4f25e4aSBram Moolenaar
40e4f25e4aSBram Moolenaar!Escape
41e4f25e4aSBram MoolenaarPUSH "\e="
42e4f25e4aSBram Moolenaar  escape "="
43e4f25e4aSBram Moolenaar
44e4f25e4aSBram Moolenaar!Escape 2-byte
45e4f25e4aSBram MoolenaarPUSH "\e(X"
46e4f25e4aSBram Moolenaar  escape "(X"
47e4f25e4aSBram Moolenaar
48e4f25e4aSBram Moolenaar!Split write Escape
49e4f25e4aSBram MoolenaarPUSH "\e("
50e4f25e4aSBram MoolenaarPUSH "Y"
51e4f25e4aSBram Moolenaar  escape "(Y"
52e4f25e4aSBram Moolenaar
53e4f25e4aSBram Moolenaar!Escape cancels Escape, starts another
54e4f25e4aSBram MoolenaarPUSH "\e(\e)Z"
55e4f25e4aSBram Moolenaar  escape ")Z"
56e4f25e4aSBram Moolenaar
57e4f25e4aSBram Moolenaar!CAN cancels Escape, returns to normal mode
58e4f25e4aSBram MoolenaarPUSH "\e(\x{18}AB"
59e4f25e4aSBram Moolenaar  text 0x41, 0x42
60e4f25e4aSBram Moolenaar
61e4f25e4aSBram Moolenaar!C0 in Escape interrupts and continues
62e4f25e4aSBram MoolenaarPUSH "\e(\nX"
63e4f25e4aSBram Moolenaar  control 10
64e4f25e4aSBram Moolenaar  escape "(X"
65e4f25e4aSBram Moolenaar
66e4f25e4aSBram Moolenaar!CSI 0 args
67e4f25e4aSBram MoolenaarPUSH "\e[a"
68e4f25e4aSBram Moolenaar  csi 0x61 *
69e4f25e4aSBram Moolenaar
70e4f25e4aSBram Moolenaar!CSI 1 arg
71e4f25e4aSBram MoolenaarPUSH "\e[9b"
72e4f25e4aSBram Moolenaar  csi 0x62 9
73e4f25e4aSBram Moolenaar
74e4f25e4aSBram Moolenaar!CSI 2 args
75e4f25e4aSBram MoolenaarPUSH "\e[3;4c"
76e4f25e4aSBram Moolenaar  csi 0x63 3,4
77e4f25e4aSBram Moolenaar
78e4f25e4aSBram Moolenaar!CSI 1 arg 1 sub
79e4f25e4aSBram MoolenaarPUSH "\e[1:2c"
80e4f25e4aSBram Moolenaar  csi 0x63 1+,2
81e4f25e4aSBram Moolenaar
82e4f25e4aSBram Moolenaar!CSI many digits
83e4f25e4aSBram MoolenaarPUSH "\e[678d"
84e4f25e4aSBram Moolenaar  csi 0x64 678
85e4f25e4aSBram Moolenaar
86e4f25e4aSBram Moolenaar!CSI leading zero
87e4f25e4aSBram MoolenaarPUSH "\e[007e"
88e4f25e4aSBram Moolenaar  csi 0x65 7
89e4f25e4aSBram Moolenaar
90e4f25e4aSBram Moolenaar!CSI qmark
91e4f25e4aSBram MoolenaarPUSH "\e[?2;7f"
92e4f25e4aSBram Moolenaar  csi 0x66 L=3f 2,7
93e4f25e4aSBram Moolenaar
94e4f25e4aSBram Moolenaar!CSI greater
95e4f25e4aSBram MoolenaarPUSH "\e[>c"
96e4f25e4aSBram Moolenaar  csi 0x63 L=3e *
97e4f25e4aSBram Moolenaar
98e4f25e4aSBram Moolenaar!CSI SP
99e4f25e4aSBram MoolenaarPUSH "\e[12 q"
100e4f25e4aSBram Moolenaar  csi 0x71 12 I=20
101e4f25e4aSBram Moolenaar
102e4f25e4aSBram Moolenaar!Mixed CSI
103e4f25e4aSBram MoolenaarPUSH "A\e[8mB"
104e4f25e4aSBram Moolenaar  text 0x41
105e4f25e4aSBram Moolenaar  csi 0x6d 8
106e4f25e4aSBram Moolenaar  text 0x42
107e4f25e4aSBram Moolenaar
108e4f25e4aSBram Moolenaar!Split write
109e4f25e4aSBram MoolenaarPUSH "\e"
110e4f25e4aSBram MoolenaarPUSH "[a"
111e4f25e4aSBram Moolenaar  csi 0x61 *
112e4f25e4aSBram MoolenaarPUSH "foo\e["
113e4f25e4aSBram Moolenaar  text 0x66, 0x6f, 0x6f
114e4f25e4aSBram MoolenaarPUSH "4b"
115e4f25e4aSBram Moolenaar  csi 0x62 4
116e4f25e4aSBram MoolenaarPUSH "\e[12;"
117e4f25e4aSBram MoolenaarPUSH "3c"
118e4f25e4aSBram Moolenaar  csi 0x63 12,3
119e4f25e4aSBram Moolenaar
120e4f25e4aSBram Moolenaar!Escape cancels CSI, starts Escape
121e4f25e4aSBram MoolenaarPUSH "\e[123\e9"
122e4f25e4aSBram Moolenaar  escape "9"
123e4f25e4aSBram Moolenaar
124e4f25e4aSBram Moolenaar!CAN cancels CSI, returns to normal mode
125e4f25e4aSBram MoolenaarPUSH "\e[12\x{18}AB"
126e4f25e4aSBram Moolenaar  text 0x41, 0x42
127e4f25e4aSBram Moolenaar
128e4f25e4aSBram Moolenaar!C0 in Escape interrupts and continues
129e4f25e4aSBram MoolenaarPUSH "\e[12\n;3X"
130e4f25e4aSBram Moolenaar  control 10
131e4f25e4aSBram Moolenaar  csi 0x58 12,3
132e4f25e4aSBram Moolenaar
133e4f25e4aSBram Moolenaar!OSC BEL
134e4f25e4aSBram MoolenaarPUSH "\e]1;Hello\x07"
135be593bf1SBram Moolenaar  osc [1 "Hello"]
136e4f25e4aSBram Moolenaar
137e4f25e4aSBram Moolenaar!OSC ST (7bit)
138e4f25e4aSBram MoolenaarPUSH "\e]1;Hello\e\\"
139be593bf1SBram Moolenaar  osc [1 "Hello"]
140e4f25e4aSBram Moolenaar
141e4f25e4aSBram Moolenaar!OSC ST (8bit)
142e4f25e4aSBram MoolenaarPUSH "\x{9d}1;Hello\x9c"
143be593bf1SBram Moolenaar  osc [1 "Hello"]
144be593bf1SBram Moolenaar
145be593bf1SBram Moolenaar!OSC in parts
146be593bf1SBram MoolenaarPUSH "\e]52;abc"
147be593bf1SBram Moolenaar  osc [52 "abc"
148be593bf1SBram MoolenaarPUSH "def"
149be593bf1SBram Moolenaar  osc "def"
150be593bf1SBram MoolenaarPUSH "ghi\e\\"
151be593bf1SBram Moolenaar  osc "ghi"]
152e4f25e4aSBram Moolenaar
153*83a52533SBram Moolenaar!OSC BEL without semicolon
154*83a52533SBram MoolenaarPUSH "\e]1234\x07"
155*83a52533SBram Moolenaar  osc [1234 ]
156*83a52533SBram Moolenaar
157*83a52533SBram Moolenaar!OSC ST without semicolon
158*83a52533SBram MoolenaarPUSH "\e]1234\e\\"
159*83a52533SBram Moolenaar  osc [1234 ]
160*83a52533SBram Moolenaar
161e4f25e4aSBram Moolenaar!Escape cancels OSC, starts Escape
162e4f25e4aSBram MoolenaarPUSH "\e]Something\e9"
163e4f25e4aSBram Moolenaar  escape "9"
164e4f25e4aSBram Moolenaar
165e4f25e4aSBram Moolenaar!CAN cancels OSC, returns to normal mode
166e4f25e4aSBram MoolenaarPUSH "\e]12\x{18}AB"
167e4f25e4aSBram Moolenaar  text 0x41, 0x42
168e4f25e4aSBram Moolenaar
169e4f25e4aSBram Moolenaar!C0 in OSC interrupts and continues
170e4f25e4aSBram MoolenaarPUSH "\e]2;\nBye\x07"
171be593bf1SBram Moolenaar  osc [2 ""
172e4f25e4aSBram Moolenaar  control 10
173be593bf1SBram Moolenaar  osc "Bye"]
174e4f25e4aSBram Moolenaar
175e4f25e4aSBram Moolenaar!DCS BEL
176e4f25e4aSBram MoolenaarPUSH "\ePHello\x07"
177be593bf1SBram Moolenaar  dcs ["Hello"]
178e4f25e4aSBram Moolenaar
179e4f25e4aSBram Moolenaar!DCS ST (7bit)
180e4f25e4aSBram MoolenaarPUSH "\ePHello\e\\"
181be593bf1SBram Moolenaar  dcs ["Hello"]
182e4f25e4aSBram Moolenaar
183e4f25e4aSBram Moolenaar!DCS ST (8bit)
184e4f25e4aSBram MoolenaarPUSH "\x{90}Hello\x9c"
185be593bf1SBram Moolenaar  dcs ["Hello"]
186e4f25e4aSBram Moolenaar
187e4f25e4aSBram Moolenaar!Escape cancels DCS, starts Escape
188e4f25e4aSBram MoolenaarPUSH "\ePSomething\e9"
189e4f25e4aSBram Moolenaar  escape "9"
190e4f25e4aSBram Moolenaar
191e4f25e4aSBram Moolenaar!CAN cancels DCS, returns to normal mode
192e4f25e4aSBram MoolenaarPUSH "\eP12\x{18}AB"
193e4f25e4aSBram Moolenaar  text 0x41, 0x42
194e4f25e4aSBram Moolenaar
195e4f25e4aSBram Moolenaar!C0 in OSC interrupts and continues
196e4f25e4aSBram MoolenaarPUSH "\ePBy\ne\x07"
197be593bf1SBram Moolenaar  dcs ["By"
198e4f25e4aSBram Moolenaar  control 10
199be593bf1SBram Moolenaar  dcs "e"]
200e4f25e4aSBram Moolenaar
201e4f25e4aSBram Moolenaar!NUL ignored
202e4f25e4aSBram MoolenaarPUSH "\x{00}"
203e4f25e4aSBram Moolenaar
204e4f25e4aSBram Moolenaar!NUL ignored within CSI
205e4f25e4aSBram MoolenaarPUSH "\e[12\x{00}3m"
206e4f25e4aSBram Moolenaar  csi 0x6d 123
207e4f25e4aSBram Moolenaar
208e4f25e4aSBram Moolenaar!DEL ignored
209e4f25e4aSBram MoolenaarPUSH "\x{7f}"
210e4f25e4aSBram Moolenaar
211e4f25e4aSBram Moolenaar!DEL ignored within CSI
212e4f25e4aSBram MoolenaarPUSH "\e[12\x{7f}3m"
213e4f25e4aSBram Moolenaar  csi 0x6d 123
214e4f25e4aSBram Moolenaar
215e4f25e4aSBram Moolenaar!DEL inside text"
216e4f25e4aSBram MoolenaarPUSH "AB\x{7f}C"
217e4f25e4aSBram Moolenaar  text 0x41,0x42
218e4f25e4aSBram Moolenaar  text 0x43
219