670 Commits

Author SHA1 Message Date
Mitchell Hashimoto
aee05d9e99 terminal: deleteLines has to reset wrap state on blank lines 2023-10-24 12:50:06 -07:00
Mitchell Hashimoto
66d97ab5f3 terminal: do not attach grapheme to empty cell 2023-10-24 12:20:37 -07:00
Mitchell Hashimoto
1457bcec90 terminal: deleteCharacters should clear wide spacer tails if split 2023-10-24 12:10:41 -07:00
Mitchell Hashimoto
62475fd709 terminal: ICH should only run with no intermediates 2023-10-24 09:43:06 -07:00
Mitchell Hashimoto
ec26cc4b41 terminal: insert blanks (ICH) with left/right and large count 2023-10-24 09:38:47 -07:00
Mitchell Hashimoto
e6a23be99a terminal: cub with reverse mode on left margin 2023-10-24 09:26:34 -07:00
Mitchell Hashimoto
96d5ca3604 terminal: horizontal tab back should handle cursor already left margin 2023-10-24 08:45:07 -07:00
Mitchell Hashimoto
407bd6fb79 terminal: with mode 2027, vs16 must move cursor one more right
Fixes #680
2023-10-16 09:48:05 -07:00
Mitchell Hashimoto
12054087e1 terminal: scroll up full top/bottom region was off by one
Fixes #689

See test cases, verified with xterm.
2023-10-16 09:25:47 -07:00
Mitchell Hashimoto
06f7cfb398 terminal: save cursor and restore cursor xterm audit 2023-10-15 21:25:47 -07:00
Mitchell Hashimoto
de1ed071ad termio: configure OSC parser with an allocator 2023-10-15 08:41:38 -07:00
Mitchell Hashimoto
cfac6c4001 terminal: OSC parser takes optional allocator
OSC 52 is the only command that uses this today. If the allocator is
present it will use it to store the clipboard contents.
2023-10-14 21:49:10 -07:00
Mitchell Hashimoto
59140f593b terminal: VS16 should make a narrow char take up two cells in mode 2027 2023-10-14 10:43:50 -07:00
Mitchell Hashimoto
529d1f016f terminal: when clearing previous wide character, preserve SGR state 2023-10-13 15:15:14 -07:00
Mitchell Hashimoto
880252fd1d terminal: printing over wide spacer tail should clear wide char 2023-10-13 14:45:40 -07:00
Mitchell Hashimoto
5ce50d08a1 terminal: linefeed mode 2023-10-12 20:46:26 -07:00
Mitchell Hashimoto
853c0427e6 website: document srm mode 2023-10-12 19:38:06 -07:00
Mitchell Hashimoto
89d2827910 terminal: insert mode tests, fix insertBlanks multi-cell char split 2023-10-12 19:24:27 -07:00
Mitchell Hashimoto
6a065540dd terminal: KAM (mode 2)
This has an associated config `vt-kam-allowed` which defaults to "false"
since this mode can cause the terminal to become mostly unusable. We
include this mode for completions sake however.
2023-10-12 17:07:47 -07:00
Mitchell Hashimoto
17430a1250 terminal: index handles left/right regions 2023-10-12 08:31:28 -07:00
Mitchell Hashimoto
f94f32be79 website 2023-10-11 22:01:37 -07:00
Mitchell Hashimoto
392da475e1 terminal: XTSHIFTESCAPE 2023-10-11 21:49:04 -07:00
Mitchell Hashimoto
96546af475 terminal: test REP 2023-10-11 17:23:27 -07:00
Mitchell Hashimoto
e593ffa264 terminal: default for right scroll margin was incorrect 2023-10-10 16:06:27 -07:00
Mitchell Hashimoto
a9fee348b6 terminal: print handles left/right margins 2023-10-10 15:41:31 -07:00
Mitchell Hashimoto
73ecb6f7ee terminal: CUL handles left/right margins 2023-10-10 15:26:04 -07:00
Mitchell Hashimoto
0c2bf94b13 Enable left/right margin support 2023-10-10 15:21:45 -07:00
Mitchell Hashimoto
fbc305c901 terminal: reverse index xterm audit 2023-10-10 15:15:53 -07:00
Mitchell Hashimoto
28b7329fe4 terminal: scroll down test 2023-10-10 14:22:05 -07:00
Mitchell Hashimoto
3cc0cbcc9d terminal: SU, fix DL bug 2023-10-10 13:00:00 -07:00
Mitchell Hashimoto
7a8f2bfed6 terminal: decscusr 2023-10-10 12:24:11 -07:00
Mitchell Hashimoto
f216609662 terminal: RIS should reset tabstops, ESC ? W should reset every 8
Fixes #648

Two issues here:

  - RIS should've been resetting the tabstops to every 8, but was
    clearing all tabstops.

  - `ESC ? W` should've reset tabstops to every 8, but was clearing
    all tabstops.
2023-10-10 09:02:22 -07:00
Mitchell Hashimoto
2354454907 terminal: set left and right margins, left and right margin mode 69 2023-10-09 21:20:15 -07:00
Mitchell Hashimoto
be99d8ffe1 terminal: decaln 2023-10-09 20:33:52 -07:00
Mitchell Hashimoto
7cc0bbe211 terminal: set top and bottom margin tests 2023-10-09 20:08:16 -07:00
Mitchell Hashimoto
9c45c6a3d1 terminal: handle ansi vs dec mode
Previously, we just ignored ansi vs dec modes (`?`-prefix) and just
responded to both requests most of the time using the number as the
unique value. This _kind of works_ because almost all DEC modes do not
overlap with ANSI modes, but some overlap (i.e. `insert`, ANSI mode 4).

This commit properly separates ANSI vs DEC modes and updates all of our
terminal sequences to handle both (where applicable -- some sequences
are explicitly DEC-only).
2023-10-09 16:01:08 -07:00
Mitchell Hashimoto
0e22e2a8dd terminal: SD should also work if cursor outside of left/right region 2023-10-09 10:53:47 -07:00
Mitchell Hashimoto
fc08f9ab17 terminal: TBC tests 2023-10-09 10:01:23 -07:00
Mitchell Hashimoto
ed23f2f1d0 terminal: implement DECID (ESC Z) 2023-10-09 09:43:28 -07:00
Mitchell Hashimoto
773104d343 terminal: scroll down tests 2023-10-09 09:40:28 -07:00
Mitchell Hashimoto
d0b8bf7752 terminal: enable alternate scroll mode by default
Fixes #641

xterm does not so there is an argument to not doing this but a lot of
other terminals do. Having this on by default makes things like less
scroll with the mouse wheel by default which is nice to have.
2023-10-09 09:23:39 -07:00
Mitchell Hashimoto
60f0e9289a terminal: dch xterm audit 2023-10-08 22:16:35 -07:00
Mitchell Hashimoto
1176b65a95 terminal: test IND preserves background sgr 2023-10-08 21:39:29 -07:00
Mitchell Hashimoto
4b9560aa31 terminal: DL 2023-10-08 21:28:41 -07:00
Mitchell Hashimoto
76bbb7c361 terminal: insert lines (IL) handles left/right scroll regions 2023-10-08 20:51:00 -07:00
Mitchell Hashimoto
38f968e368 terminal: IL preserves bg sgr, partial left/right margin support 2023-10-08 15:27:09 -07:00
Mitchell Hashimoto
eab390344a terminal: ED xterm audit
Fix multi-cell handling
Test all scenarios
2023-10-08 14:48:06 -07:00
Mitchell Hashimoto
02b134f97e terminal: EL (erase line) xterm audit
Fix multi-cell char handling
Fix bg SGR respecting in non-protected cases
Fix protected attribute logic
2023-10-08 09:03:04 -07:00
Mitchell Hashimoto
fa73fa0de2 terminal: ECH handles protection attributes properly 2023-10-07 22:36:29 -07:00
Mitchell Hashimoto
514071dd87 terminal: ECH tests with bg and multi-cell fix 2023-10-07 22:21:38 -07:00