Keypad mode is used for detecting when keys in the auxiliary keypad are
pressed, while cursor mode is used for detecting when a cursor is pressed,
but they are different modes.
St was mixing both modes and DECPAM and DECPNM modified the cursor mode, and
this was incorrect.
---
st.c | 5 +++--
st.info | 4 ++--
2 files changed, 5 insertions(+), 4 deletions(-)
MODE_REVERSE = 128,
MODE_KBDLOCK = 256,
MODE_HIDE = 512,
- MODE_ECHO = 1024
+ MODE_ECHO = 1024,
+ MODE_APPCURSOR = 2048
};
enum escape_state {
switch(*args) {
break;
case 1: /* DECCKM -- Cursor key */
- MODBIT(term.mode, set, MODE_APPKEYPAD);
+ MODBIT(term.mode, set, MODE_APPCURSOR);
break;
case 5: /* DECSCNM -- Reverse video */
mode = term.mode;
ritm=\E[23m,
rmacs=\E(B,
rmcup=\E[?1049l,
-# rmkx=\E>,
+ rmkx=\E[?1l\E>,
rmso=\E[23m,
rmul=\E[m,
rs1=\Ec,
sitm=\E[3m,
smacs=\E(0,
smcup=\E[?1049h,
-# smkx=\E=,
+ smkx=\E[?1h\E=,
smso=\E[3m,
smul=\E[4m,
tbc=\E[3g,