mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-03-13 05:33:51 -04:00
csi: add new private mode that makes the Escape key emit "\E[27;1;27~"
This mode can be set by client programs with the DECSET, DECRST, XTSAVE and XTRESTORE sequences by using 27127 as the parameter. The sequence "\E[27;1;27~" is encoded in the same way as is done by xterm's "modifyOtherKeys" mode. Even though xterm itself never emits such a sequence for the Escape key, many programs already have support for parsing this style of key sequence.
This commit is contained in:
parent
c213ee90f1
commit
31c73f0cf0
4 changed files with 16 additions and 1 deletions
6
csi.c
6
csi.c
|
|
@ -536,6 +536,10 @@ decset_decrst(struct terminal *term, unsigned param, bool enable)
|
|||
term->bracketed_paste = enable;
|
||||
break;
|
||||
|
||||
case 27127:
|
||||
term->modify_escape_key = enable;
|
||||
break;
|
||||
|
||||
default:
|
||||
UNHANDLED();
|
||||
break;
|
||||
|
|
@ -583,6 +587,7 @@ xtsave(struct terminal *term, unsigned param)
|
|||
case 1042: term->xtsave.bell_is_urgent = term->bell_is_urgent; break;
|
||||
case 1049: term->xtsave.alt_screen = term->grid == &term->alt; break;
|
||||
case 2004: term->xtsave.bracketed_paste = term->bracketed_paste; break;
|
||||
case 27127: term->xtsave.modify_escape_key = term->modify_escape_key; break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -616,6 +621,7 @@ xtrestore(struct terminal *term, unsigned param)
|
|||
case 1042: enable = term->xtsave.bell_is_urgent; break;
|
||||
case 1049: enable = term->xtsave.alt_screen; break;
|
||||
case 2004: enable = term->xtsave.bracketed_paste; break;
|
||||
case 27127: enable = term->xtsave.modify_escape_key; break;
|
||||
|
||||
default: return;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue