Fix keypad mode and cursor mode

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(-)
dev
Roberto E. Vargas Caballero 2012-11-13 20:04:34 +01:00
parent 73177ba366
commit 69ee3ba3a7
2 changed files with 5 additions and 4 deletions

5
st.c
View File

@ -121,7 +121,8 @@ enum term_mode {
MODE_REVERSE = 128, MODE_REVERSE = 128,
MODE_KBDLOCK = 256, MODE_KBDLOCK = 256,
MODE_HIDE = 512, MODE_HIDE = 512,
MODE_ECHO = 1024 MODE_ECHO = 1024,
MODE_APPCURSOR = 2048
}; };
enum escape_state { enum escape_state {
@ -1471,7 +1472,7 @@ tsetmode(bool priv, bool set, int *args, int narg) {
switch(*args) { switch(*args) {
break; break;
case 1: /* DECCKM -- Cursor key */ case 1: /* DECCKM -- Cursor key */
MODBIT(term.mode, set, MODE_APPKEYPAD); MODBIT(term.mode, set, MODE_APPCURSOR);
break; break;
case 5: /* DECSCNM -- Reverse video */ case 5: /* DECSCNM -- Reverse video */
mode = term.mode; mode = term.mode;

View File

@ -89,7 +89,7 @@ st| simpleterm,
ritm=\E[23m, ritm=\E[23m,
rmacs=\E(B, rmacs=\E(B,
rmcup=\E[?1049l, rmcup=\E[?1049l,
# rmkx=\E>, rmkx=\E[?1l\E>,
rmso=\E[23m, rmso=\E[23m,
rmul=\E[m, rmul=\E[m,
rs1=\Ec, rs1=\Ec,
@ -104,7 +104,7 @@ st| simpleterm,
sitm=\E[3m, sitm=\E[3m,
smacs=\E(0, smacs=\E(0,
smcup=\E[?1049h, smcup=\E[?1049h,
# smkx=\E=, smkx=\E[?1h\E=,
smso=\E[3m, smso=\E[3m,
smul=\E[4m, smul=\E[4m,
tbc=\E[3g, tbc=\E[3g,