summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto E. Vargas Caballero <k0ga@shike2.com>2012-11-13 20:04:34 +0100
committerRoberto E. Vargas Caballero <k0ga@shike2.com>2012-11-13 20:04:34 +0100
commit69ee3ba3a771ca60bc8738174c79fc851818a36b (patch)
tree7e2626d8012466682209f58798fc982f3c466092
parent73177ba366e5363b8a6695882b52617a8909a925 (diff)
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(-)
-rw-r--r--st.c5
-rw-r--r--st.info4
2 files changed, 5 insertions, 4 deletions
diff --git a/st.c b/st.c
index 8bf9337..683a0e9 100644
--- a/st.c
+++ b/st.c
@@ -121,7 +121,8 @@ enum term_mode {
MODE_REVERSE = 128,
MODE_KBDLOCK = 256,
MODE_HIDE = 512,
- MODE_ECHO = 1024
+ MODE_ECHO = 1024,
+ MODE_APPCURSOR = 2048
};
enum escape_state {
@@ -1471,7 +1472,7 @@ tsetmode(bool priv, bool set, int *args, int narg) {
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;
diff --git a/st.info b/st.info
index 58e2139..63af234 100644
--- a/st.info
+++ b/st.info
@@ -89,7 +89,7 @@ st| simpleterm,
ritm=\E[23m,
rmacs=\E(B,
rmcup=\E[?1049l,
-# rmkx=\E>,
+ rmkx=\E[?1l\E>,
rmso=\E[23m,
rmul=\E[m,
rs1=\Ec,
@@ -104,7 +104,7 @@ st| simpleterm,
sitm=\E[3m,
smacs=\E(0,
smcup=\E[?1049h,
-# smkx=\E=,
+ smkx=\E[?1h\E=,
smso=\E[3m,
smul=\E[4m,
tbc=\E[3g,