Commit graph

1387 commits

Author SHA1 Message Date
Daniel Eklöf
d7d2aae053
log: log to stderr, not stdout 2020-02-04 18:29:04 +01:00
Daniel Eklöf
9c5557539f
completions: zsh: --hold has no arguments 2020-02-04 18:28:53 +01:00
Daniel Eklöf
8f4ec9aa47
Implement --hold
When specified, we don't exit when the slave/client process exits.
2020-02-03 19:58:32 +01:00
Daniel Eklöf
31baf334b3
fcft: update to 1.1.0 2020-02-01 20:20:22 +01:00
Daniel Eklöf
8c32e3ccf0
vt: ensure we never step outside our parameter and sub-parameter arrays
We only support 16 parameters, and for each parameter, 16
sub-parameters. If we ever hit that limit (or rather, if the client
writes 17 (sub) parameters), log this and stop incrementing the
parameter index variable.

For performance reason, we implement the following behavior:

* We never increment the parameter index past the supported
  number. This ensures all code *accessing* the parameter list can do
  so without verifying the validity of the index.

* The *first* time we see too many parameters, and the first time we
  see too many sub parameters, log this. Then *never* log again. Even
  if we see too many parameters in a completely different escape. This
  is so that we don't have to keep a "have warned" boolean in the
  terminal struct, but can use a simple function local static
  variable.
2020-02-01 19:44:56 +01:00
Daniel Eklöf
cc5d596cd9
csi: log only the un-handled parameter in a multi-operation CSI
Assume we don't handle 'CSI 4 X'. Furthermore, assume we receive the
following: 'CSI 1;2;3;4X'. In this case, only log '4X' as un-handled,
not the entire CSI string.
2020-02-01 19:42:31 +01:00
Daniel Eklöf
07a0c7238c
vt: collect (intermediate): log a warning if user supplied more than two intermediates 2020-02-01 19:29:31 +01:00
Daniel Eklöf
bbb7b60b17
vt: collect (intermediate): log _which_ character we collected 2020-02-01 19:29:14 +01:00
Daniel Eklöf
4dde699107
csi: implement window and cell size reporting escapes
This implements the following queries:

* report window size in pixels
* report cell size in pixels
* report window size in chars

We also log a warning for the remaining window operation queries.
2020-02-01 19:27:52 +01:00
Daniel Eklöf
dfa5cb41e0
csi: recognize the X10 mouse tracking enabler/disabler
We still don't implement it, but now we at least recognize it and log
a warning when it is implemented.
2020-02-01 19:27:06 +01:00
Daniel Eklöf
38e2e037e6
csi: drop '28' from our DA response
We don't support rectangular editing
2020-02-01 19:26:08 +01:00
Daniel Eklöf
f13adf50dc
vt: use 8-bit indices for parameters and sub parameters
We only support 16 (sub) parameters and thus there's no need for
64-bit index variables.
2020-02-01 19:24:46 +01:00
Daniel Eklöf
26d39fe96e
dcs: fix comment: ESU is *End* synchronized update 2020-01-29 19:43:58 +01:00
Daniel Eklöf
f74364979d
dcs: bsu/esu: convert warning log to debug log 2020-01-26 15:28:30 +01:00
Daniel Eklöf
4a64e4aebc
vt: bug: state machine: csi entry: handle 0x3a/0x3b correctly
0x3a/0x3b are ':' and ';'. These should not only switch to the 'csi
param' state, but also be parsed as a parameter.

This fixes an issue where a multi-parameter escape with the first
parameter omitted was parsed incorrectly - as if the first parameter
wasn't there.

I.e. "\e[;123r" was parsed as "\e[123r"
2020-01-26 00:44:53 +01:00
Daniel Eklöf
16237eccde
dcs: remove abort() from BSU/ESU 2020-01-25 23:43:36 +01:00
Daniel Eklöf
506c1da390
desktop: add foot-server.desktop - launches a foot server instance 2020-01-24 22:27:11 +01:00
Daniel Eklöf
11f35434cb
terminfo: use ST, not BEL as OSC terminator 2020-01-23 17:40:30 +01:00
Daniel Eklöf
75b8fc52b8
vt: bug: fix check for error from mbrtowc()
mbrtowc() returns an unsigned. Need to cast to signed before checking
if less than zero.

This fixes an issue where invalid utf-8 sequences where treated as valid.
2020-01-23 17:39:25 +01:00
Daniel Eklöf
51f8453f9d
csi: disable save/restore highlight mouse tracking
We don't implement it, so no point in warning about save/restore not
begin implemented.
2020-01-23 17:38:45 +01:00
Daniel Eklöf
e6d1ebbbfc
csi: warn when client tries to enable "highlight mouse tracking" 2020-01-23 17:38:23 +01:00
Daniel Eklöf
08eb0532ad
terminal: regression: char printed to wrong column
When term_print() was implemented, it introduced a regression where
printing a character when the last cursor was in the last column on a
line would print the character in the wrong column.

This is because term_print() retrieved a pointer to the current
cell *before* line wrapping (and possibly inserting empty cells).
2020-01-22 18:22:15 +01:00
Daniel Eklöf
d6ea676ef2
presentation: store input timestamp in a per-commit context
This should reduce the risk of mixing up an input timestamp with the
corresponding rendered frame.
2020-01-21 18:51:04 +01:00
Daniel Eklöf
3600099b52
doc: foot.1: document alt/meta characters 2020-01-20 21:28:15 +01:00
Daniel Eklöf
bd7a59f2e0
doc: foot.1: use BOLD for things that should by typed as-is 2020-01-20 21:27:52 +01:00
Daniel Eklöf
b40b1ba62c
terminfo: sort 2020-01-20 18:45:14 +01:00
Daniel Eklöf
4d2d3b2d95
terminfo: add 'oc' (orig colors)
We already had the functionality, we just didn't expose it in the
terminfo.
2020-01-20 18:45:14 +01:00
Daniel Eklöf
a3d919a90d
input: implement metaSendsEscape and eightBitMeta 2020-01-20 18:45:14 +01:00
Daniel Eklöf
4e87426712
csi: implement REP - CSI Ps b 2020-01-20 18:45:14 +01:00
Daniel Eklöf
2c8b31204f
render: fallback to background color if cursor text color is not set 2020-01-20 18:36:44 +01:00
Daniel Eklöf
5d702e6fbf
osc: implement OSC 12 and OSC 112 (set/reset text cursor color) 2020-01-20 18:36:19 +01:00
Daniel Eklöf
97afba1b14
dcs: remove assert; handler may be zero on unimplemented OCS command 2020-01-20 18:35:34 +01:00
Daniel Eklöf
0c11459eef
term: fix reset state of VT state 2020-01-20 18:35:13 +01:00
Daniel Eklöf
300f83e66b
term: factor out character printing to new function term_print() 2020-01-20 18:34:32 +01:00
Daniel Eklöf
767a0ec232
fcft: update to 1.0.0
Allow/disallow subpixel antialiasing in font_glyph_for_wc(), not using
font_enable_subpixel_antialias().
2020-01-19 12:44:21 +01:00
Daniel Eklöf
15ef3ecfad
meson/PKGBUILD: need fcft >= 0.4.3 to configure subpixel antialiasing 2020-01-18 19:58:50 +01:00
Daniel Eklöf
7a00c7ddf4
term: enable subpixel antialiasing if background is opaque 2020-01-18 19:58:14 +01:00
Daniel Eklöf
751e079196
Merge branch 'releases/1.1' 2020-01-15 14:41:28 +01:00
Daniel Eklöf
9567b29d1e
meson/PKGBUILD: bump version to 1.1.0 2020-01-15 14:22:01 +01:00
Daniel Eklöf
3ccd2b6f99
ci: checkout/clone (doh!) 2020-01-14 19:38:17 +01:00
Daniel Eklöf
93cc959db2
ci: no 'git' available by default, need to install it 2020-01-14 19:36:37 +01:00
Daniel Eklöf
9d7713c56c
ci; no pushd/popd available 2020-01-14 19:35:25 +01:00
Daniel Eklöf
c645a4b180
input: reset XKB compose state on keyboard leave 2020-01-14 19:32:02 +01:00
Daniel Eklöf
493a7a3202
ci: checkout tllist/fcft subprojects 2020-01-14 19:29:57 +01:00
Daniel Eklöf
3a108499ce
Revert "input: generate key down events on keyboard-enter"
This reverts commit 84739d78c6.
2020-01-14 19:28:37 +01:00
Daniel Eklöf
84739d78c6
input: generate key down events on keyboard-enter 2020-01-13 19:59:18 +01:00
Daniel Eklöf
c80cbc9a79
input: reset modifier state on keyboard-leave 2020-01-13 19:58:57 +01:00
Daniel Eklöf
727be358df
render: resize: TIOCSWINSZ: don't include padding in ws_{x,y}pixel 2020-01-12 14:42:49 +01:00
Daniel Eklöf
1623fc0c0a
term: shorten application_synchronized_updates -> app_sync_updates 2020-01-12 12:55:19 +01:00
Daniel Eklöf
02c310d241
term: enable_application_synchronized_updates: not a noop if already enabled
If synchronized updates are already enabled when we receive a request
to enable them, extend the timeout.
2020-01-12 12:51:21 +01:00