st

fork of suckless's simple terminal
Index Commits Files Refs README LICENSE
commit 69ee3ba3a771ca60bc8738174c79fc851818a36b
parent 73177ba366e5363b8a6695882b52617a8909a925
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date:   Tue, 13 Nov 2012 20:04:34 +0100

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(-)
Diffstat:
Mst.c | 5+++--
Mst.info | 4++--
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git 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
@@ -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,