csi: ‘CSI s’ and ‘CSI u’ now saves/restores attributes and charsets

This commit is contained in:
Daniel Eklöf 2020-12-11 20:01:19 +01:00
parent 934466bc84
commit 975e70dae1
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 6 additions and 0 deletions

View file

@ -121,6 +121,8 @@ means foot can be PGO:d in e.g. sandboxed build scripts. See
* Error when re-assigning a default key binding
(https://codeberg.org/dnkl/foot/issues/233).
* `\E[s`+`\E[u` (save/restore cursor) now saves and restores
attributes and charset configuration, just like `\E7`+`\E8`.
### Security

4
csi.c
View file

@ -1108,10 +1108,14 @@ csi_dispatch(struct terminal *term, uint8_t final)
case 's':
term->grid->saved_cursor = term->grid->cursor;
term->vt.saved_attrs = term->vt.attrs;
term->saved_charsets = term->charsets;
break;
case 'u':
term_restore_cursor(term, &term->grid->saved_cursor);
term->vt.attrs = term->vt.saved_attrs;
term->charsets = term->saved_charsets;
break;
case 't': {