Daniel Eklöf
20684afa8c
csi: implement \E[@ (ICH - insert characters)
2019-07-17 11:19:28 +02:00
Daniel Eklöf
28eef93742
vt/csi: recognize the reset sequence sent by 'reset'
...
However, we don't (yet) actually reset the terminal
2019-07-17 10:39:38 +02:00
Daniel Eklöf
e944eb85ac
csi: document a couple of unimplemented CSIs
2019-07-17 10:33:15 +02:00
Daniel Eklöf
770c5e97dd
csi: move 'dim' attribute from 'vt' to cell attributes
2019-07-16 13:25:45 +02:00
Daniel Eklöf
6c6543cfeb
csi: add back 'blink' attribute
2019-07-16 13:19:17 +02:00
Daniel Eklöf
ccc8ef9606
terminal: foreground/background in cell attributes are now uint32_t
...
This reduces the cell size, and thus improves the cache behavour
2019-07-16 13:17:51 +02:00
Daniel Eklöf
2a1c4d29e9
csi: implement \E[21m (disable bold)
2019-07-16 12:53:58 +02:00
Daniel Eklöf
7f6a4f4b6b
csi: implement FocusIn/Out events
2019-07-16 10:34:08 +02:00
Daniel Eklöf
9929e902a6
csi: recognize, but mostly ignore, cursor style configuration
2019-07-16 10:20:54 +02:00
Daniel Eklöf
4038a8a198
csi: add missing 'break'
2019-07-16 10:20:47 +02:00
Daniel Eklöf
7379198f4a
Use vt_to_slave() instead of calling write(term->ptmx, ...) everywhere
2019-07-15 15:42:21 +02:00
Daniel Eklöf
ae2ec19133
csi: remove debug logging
2019-07-15 14:00:02 +02:00
Daniel Eklöf
888de785b7
csi: erase alt screen before activating it
2019-07-15 13:59:05 +02:00
Daniel Eklöf
f63df93e15
csi: 'X': then 'end' parameter in term_erase() is *inclusive*
2019-07-15 13:55:47 +02:00
Daniel Eklöf
03b9cf2a22
csi: implement ':'-separated 24-bit color values
2019-07-15 12:35:43 +02:00
Daniel Eklöf
84c0bb8f59
csi: cancel selection when switching between 'normal' and 'alt' grid
2019-07-11 17:38:02 +02:00
Daniel Eklöf
cf71534768
terminal: remove 'blink' attribute from cell struct
...
This makes the other attribute bits fit in a single uint8_t, which
makes each cell smaller which improves cache usage.
2019-07-10 18:45:12 +02:00
Daniel Eklöf
454133033c
vt/csi: use vt_param_get()
2019-07-10 16:04:16 +02:00
Daniel Eklöf
96bd55f7c4
terminal: only support a single intermediate/private character
2019-07-10 15:03:16 +02:00
Daniel Eklöf
43e57e3546
csi: fix logging; 'CSI' was printed twice
2019-07-10 14:57:59 +02:00
Daniel Eklöf
9b5c044b29
terminal: rename and redefine cursor keys mode and keypad keys mode
2019-07-09 11:07:06 +02:00
Daniel Eklöf
1e2a7e77f0
rgba: drop alpha channel support
2019-07-08 15:56:15 +02:00
Daniel Eklöf
4e25019ba6
wip: grid is now represented as a grid, not a linear array
...
The grid is now represented with an array of row *pointers*. Each row
contains an array of cells (the row's columns).
The main point of having row pointers is we can now move rows around
almost for free.
This is useful when scrolling with scroll margins for example, where
we previously had to copy the lines in the margins. Now it's just a
matter of swapping two pointers.
2019-07-08 13:57:31 +02:00
Daniel Eklöf
48528419c4
grid: grid_memset() -> grid_memclear()
2019-07-07 17:10:15 +02:00
Daniel Eklöf
abff0e205e
csi: scroll region is not allowed past available rows
2019-07-07 17:03:22 +02:00
Daniel Eklöf
d63629b370
performance improvements
...
* action() returns void - this gets rid of checks in vt_from_slave()
* split up ACTION_PRINT into ACTION_PRINT (ASCII) and ACTION_UTF8_PRINT
ACTION_PRINT is on the hot path, and we want it streamlined.
* Remove run-time checkout for unimplemented state transitions, as we
shouldn't have any of those left.
* Don't re-load current VT state on each iteration in vt_from_slave()
2019-07-07 16:32:18 +02:00
Daniel Eklöf
b26e03fced
csi: implement reverse video
2019-07-05 20:12:40 +02:00
Daniel Eklöf
c76e620d71
csi: implement URXVT style mouse event reporting
2019-07-05 19:40:52 +02:00
Daniel Eklöf
b9bd637021
csi: SGR mouse tracking *is* implemented
2019-07-05 15:58:02 +02:00
Daniel Eklöf
1610828b8c
vt: add support for mouse motion reports
2019-07-05 15:13:06 +02:00
Daniel Eklöf
e5fc266cdb
vt: add support for \E[?1000h - report mouse button events
2019-07-05 14:24:51 +02:00
Daniel Eklöf
3ba1721c0f
osc: implement change window title and icon
2019-07-05 09:50:35 +02:00
Daniel Eklöf
488ad5dc77
csi: manually erase alt screen when switching to it
2019-07-05 09:09:58 +02:00
Daniel Eklöf
669ef1a07a
csi: implement CSI S and CSI T (scroll up/down)
2019-07-04 19:39:23 +02:00
Daniel Eklöf
befb437411
vt: improve logging of invalid and unimplemented sequences
2019-07-04 19:35:01 +02:00
Daniel Eklöf
50d455bd15
csi: ignore 'blinking cursor' private mode
2019-07-04 10:04:52 +02:00
Daniel Eklöf
0457c33418
csi: fix parsing of 256-color and 24-bit color SGRs
...
There may be more SGR sequences after the 256-color/24-bit
sequence. Thus, check that we have *enough* parameters to parse the
256-color/24-bit SGR. It doesn't have to be *exactly* the required
number of parameters though.
Fixes issues with sequences like: \e[38;2;1;48;2;1m
2019-07-04 09:57:02 +02:00
Daniel Eklöf
35d5035f61
csi: fix bug: cursor horizontal absolute (<ESC> Pn G) was off-by-one
2019-07-03 22:21:44 +02:00
Daniel Eklöf
2f3f4ac56f
csi: cleanup
2019-07-03 22:21:23 +02:00
Daniel Eklöf
3d58d24963
csi: ?r and ?s are like ?h and ?l; they save/restore things
...
Assuming ncmpcpp is correct, ?1001s and ?1001r saves and restores the
'highlight mouse tracking' mode.
2019-07-03 21:33:23 +02:00
Daniel Eklöf
3c67628c57
vt: implement (untested!) smam and rmam (auto margins)
...
Default is auto-margins enabled (scroll when cursor reaches right
margin).
2019-07-03 21:18:06 +02:00
Daniel Eklöf
90dadfcc22
vt: implement (untested!) insert mode
...
\E4l is not horizontal index, but disable INSERT mode
2019-07-03 21:16:41 +02:00
Daniel Eklöf
1373d18dbc
logging: disable debug logging by default
2019-07-03 20:21:03 +02:00
Daniel Eklöf
b5dccf2883
csi: add unknown private escapes 's' and 'r', seen with ncmpcpp
2019-07-03 16:04:16 +02:00
Daniel Eklöf
43045a98e2
csi: recognize ?1005 and ?1015 private CSIs
2019-07-03 16:00:06 +02:00
Daniel Eklöf
f4c3343382
csi: fix cursor positioning
2019-07-03 15:59:28 +02:00
Daniel Eklöf
66033b9b1a
csi: implement 'erase characters' (CSI X)
2019-07-03 15:58:49 +02:00
Daniel Eklöf
a0602aedb5
csi: recognize 'smam', but log unimplemented
2019-07-03 14:47:34 +02:00
Daniel Eklöf
92f0d64279
csi: add untested implementation of "horizontal index"
2019-07-03 14:47:01 +02:00
Daniel Eklöf
2fad8138e1
csi: scroll region changes are now logged as debug again, rather than info
2019-07-03 14:24:46 +02:00