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