Daniel Eklöf
b0a2c54fe8
vt: wip: implement scrolling region
...
This is largely untested, but existing scrolling code has been
converted to using a terminal-global scrolling region that is defined
as start-end of the scrollable region.
This is compared to the old code where the scrolling region where
defined in terms of marginals, counted in lines from top and from
bottom.
2019-06-23 18:02:49 +02:00
Daniel Eklöf
7183b2f0fe
csi/vt: fix logging of intermediate characters
2019-06-23 17:17:47 +02:00
Daniel Eklöf
fbf0db621c
vt: implement reverse scrolling (terminfo 'ri')
...
This currently duplicates the code paths for DAMAGE_SCROLL; there are
many similarities between the two, but also major differences...
2019-06-23 17:16:52 +02:00
Daniel Eklöf
c0a9f9e6b2
resize: bug: we're not in alt screen mode at startup
...
When we start up, the cells pointer, *and* the alt screen pointer are
both NULL. Hence we incorrectly decided we were initially in alt
screen mode.
2019-06-23 17:14:46 +02:00
Daniel Eklöf
de7dcf1a5c
csi: save and restore cursor when switching to and from alt screen
2019-06-23 15:03:22 +02:00
Daniel Eklöf
199e4aa044
vt: initial implementation of alt screen + 256 colors
2019-06-23 15:00:27 +02:00
Daniel Eklöf
35e5fa1f76
vt: implement DECCKM (cursor key sends either SS3 or CSI escapes)
2019-06-23 14:12:20 +02:00
Daniel Eklöf
9e47c89880
csi: implement 'CSI H' (set cursor position)
2019-06-23 14:11:35 +02:00
Daniel Eklöf
1ad9d118c2
vt: dummy implementation of ESC dispatch
2019-06-23 13:36:20 +02:00
Daniel Eklöf
1414639b76
csi: include intermediates in debug logging
2019-06-23 13:36:13 +02:00
Daniel Eklöf
949847a35a
vt: add all (?) missing states, actions and transitions
2019-06-23 13:28:55 +02:00
Daniel Eklöf
15b29ecb49
vt: add missing entry action for ESCAPE
2019-06-22 22:27:20 +02:00
Daniel Eklöf
308bcb0233
vt: add missing transition from state ESCAPE -> CSI DISPATCH
2019-06-22 22:26:57 +02:00
Daniel Eklöf
6aba78a145
csi: wip: recognize the private CSIs for bracketed paste, smcup/rmxup, smkx/rmkx
2019-06-22 22:25:50 +02:00
Daniel Eklöf
7998ce9ee4
csi: remove commented out debug logging
2019-06-22 22:25:19 +02:00
Daniel Eklöf
5698d69890
render: implement 'reverse' attribute
2019-06-22 21:42:44 +02:00
Daniel Eklöf
7ec746e826
render: implement 'conceal' attribute
2019-06-22 21:39:11 +02:00
Daniel Eklöf
9c9ad48745
csi: sgr: treat CSI[m as CSI[0m (SGR reset)
2019-06-22 21:38:47 +02:00
Daniel Eklöf
4b6ea810fc
main: implement bold+italic fonts
2019-06-22 21:32:51 +02:00
Daniel Eklöf
e600e75810
csi: implement CSI Pn P (DCH - delete character)
2019-06-22 21:31:28 +02:00
Daniel Eklöf
4c7dbee221
input: reduce utf8 buffer size
2019-06-22 20:40:28 +02:00
Daniel Eklöf
faf60108f1
input: add a key mapping table, mapping key syms to escape sequences
...
At the same time, also add support for the shift modifier.
2019-06-22 20:31:53 +02:00
Daniel Eklöf
8ecd69c500
input: stop key repeater when input focus is lost
2019-06-21 18:40:53 +02:00
Daniel Eklöf
dba3bb820d
csi: fix \e[B - it should move the cursor *down*, not up.
2019-06-21 15:34:10 +02:00
Daniel Eklöf
a537934e4b
csi: fix line clearing; the erase range 'end' is exclusive
2019-06-21 15:33:03 +02:00
Daniel Eklöf
3338b816a3
render: re-render cursor after ERASE (if cursor is in the erase range)
2019-06-21 15:31:35 +02:00
Daniel Eklöf
a50be28b9d
grid: implement DAMAGE_SCROLL
2019-06-21 14:29:15 +02:00
Daniel Eklöf
0ddd96de0d
render: break up grid_render()
2019-06-19 14:37:42 +02:00
Daniel Eklöf
304f15d696
Use a 'damage' list to communicate what needs to be updated
...
Instead of having each cell in the grid track it's own dirtiness, grid
operations now append "damage" to a list.
This list is consumed every time we render the grid.
This allows us to special case some operations, like erase (and in the
future, scroll).
2019-06-19 14:17:43 +02:00
Daniel Eklöf
10765687db
csi: dummy implementation of bright foreground/background colors
...
Re-use the regular colors for now
2019-06-19 11:12:45 +02:00
Daniel Eklöf
96731814da
grid: erase: memset() the entire range in one call
2019-06-19 10:58:24 +02:00
Daniel Eklöf
efc8cc4914
wip: initial scrolling support (no scrollback though)
2019-06-19 10:27:31 +02:00
Daniel Eklöf
71dde121e6
wip: initial input handling
2019-06-19 10:04:47 +02:00
Daniel Eklöf
3bd77bceb1
csi: CSI log messages are now single line
2019-06-18 21:55:39 +02:00
Daniel Eklöf
b8017a36de
vt: fix utf-8 bug: re-load 'current state' after processing a utf8 byte
2019-06-18 21:55:18 +02:00
Daniel Eklöf
a27868cd9f
vt: disable the worst spamming logging
2019-06-18 21:54:42 +02:00
Daniel Eklöf
50c43be0d9
grid: track both linear and row,col cursor
2019-06-17 21:15:20 +02:00
Daniel Eklöf
963b266cce
vt: handle cursor-at-right-edge
...
When printing to the right-most-cell, don't advance the
cursor. Instead, set a flag that indicates that the *next* print
should line-wrap.
2019-06-17 20:53:05 +02:00
Daniel Eklöf
4585df532c
wip: vt parsing: break out grid operating functions
2019-06-17 19:33:10 +02:00
Daniel Eklöf
6d5f5b9f7a
wip: vt parsing
2019-06-17 18:57:12 +02:00
Daniel Eklöf
733223dd0c
TIOCSWINSZ: set ws_xpixel and ws_ypixel
2019-06-16 16:47:09 +02:00
Daniel Eklöf
c5b60253a7
vt: cell now tracks attributes (bold, italic, underline etc)
2019-06-16 16:44:42 +02:00
Daniel Eklöf
2a4c08b941
wip: vt parsing: initial csi/osc dispatching
2019-06-15 22:22:44 +02:00
Daniel Eklöf
0e6aa61d69
Track cell foreground and background colors
2019-06-13 21:55:32 +02:00
Daniel Eklöf
9f9949aeec
Initial handling of multi byte characters
...
Use mblen() to calculate the byte count for each character.
2019-06-13 21:23:52 +02:00
Daniel Eklöf
e062ff7b97
Set XDG toplevel title
2019-06-13 20:43:52 +02:00
Daniel Eklöf
46e3c9d4d4
Render cursor
2019-06-13 20:40:03 +02:00
Daniel Eklöf
71703e7dc6
Use frame callback to rate-limit surface updates
2019-06-13 17:14:14 +02:00
Daniel Eklöf
9ccc8433c3
initial grid implementation
...
This allows us to render *something*, even though it's inefficient,
stupid and far far away from the real thing.
2019-06-13 16:24:35 +02:00
Daniel Eklöf
acda4d2d31
Set up pseudo terminal and fork slave
2019-06-13 15:19:10 +02:00