fix arrow keys in csi-mode - sob - simple output bar | |
git clone git://git.codemadness.org/sob | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit d52ae758f565c6a59c5ddb96995b2e364c507c4f | |
parent c02257b852543ca38d39f9c2ae1654adecb398fb | |
Author: Hiltjo Posthuma <[email protected]> | |
Date: Fri, 3 Oct 2014 23:48:11 +0000 | |
fix arrow keys in csi-mode | |
Diffstat: | |
M config.def.h | 29 ++++++++++++++++++++--------- | |
1 file changed, 20 insertions(+), 9 deletions(-) | |
--- | |
diff --git a/config.def.h b/config.def.h | |
@@ -24,15 +24,22 @@ complete_nick(void) | |
#define CONTROL(ch) ((ch)^0x40) | |
-#define KEY_HOME "\x1b[\x31\x7e" | |
-#define KEY_END "\x1b[\x34\x7e" | |
+#define KEY_HOME "\x1b\x5b\x31\x7e" | |
+#define KEY_END "\x1b\x5b\x34\x7e" | |
#define KEY_CTRL_LEFT "\x1b\x5b\x31\x3b\x35\x44" | |
#define KEY_CTRL_RIGHT "\x1b\x5b\x31\x3b\x35\x43" | |
-#define KEY_LEFT "\x1b\x4f\x44" | |
-#define KEY_RIGHT "\x1b\x4f\x43" | |
-#define KEY_DOWN "\x1b\x4f\x42" | |
+/* Del */ | |
+#define KEY_DC "\x1b\x5b\x33\x7e" | |
+/* SS3 DECCKM keys */ | |
#define KEY_UP "\x1b\x4f\x41" | |
-#define KEY_DC "\x1b\x5b\x33\7e" /* del */ | |
+#define KEY_DOWN "\x1b\x4f\x42" | |
+#define KEY_RIGHT "\x1b\x4f\x43" | |
+#define KEY_LEFT "\x1b\x4f\x44" | |
+/* CSI keys */ | |
+#define KEY_CSI_UP "\x1b\x5b\x41" | |
+#define KEY_CSI_DOWN "\x1b\x5b\x42" | |
+#define KEY_CSI_RIGHT "\x1b\x5b\x43" | |
+#define KEY_CSI_LEFT "\x1b\x5b\x44" | |
static struct keybind { | |
unsigned char key[16]; | |
@@ -44,16 +51,18 @@ static struct keybind { | |
{ { KEY_END }, line_cursor_end }, | |
{ { CONTROL('B') }, line_cursor_prev }, | |
{ { KEY_LEFT }, line_cursor_prev }, | |
+ { { KEY_CSI_LEFT }, line_cursor_prev }, | |
{ { CONTROL('F') }, line_cursor_next }, | |
{ { KEY_RIGHT }, line_cursor_next }, | |
+ { { KEY_CSI_RIGHT }, line_cursor_next }, | |
{ { KEY_CTRL_LEFT }, line_cursor_wordprev }, | |
{ { KEY_CTRL_RIGHT }, line_cursor_wordnext }, | |
- { { CONTROL('W') }, line_delwordback }, | |
- { { CONTROL('H') }, line_delcharback }, | |
+ { { CONTROL('W') }, line_delwordprev }, | |
+ { { CONTROL('H') }, line_delcharprev }, | |
{ { CONTROL('U') }, line_clear }, | |
{ { CONTROL('K') }, line_deltoend }, | |
{ { KEY_DC }, line_delcharnext }, | |
- { { CONTROL('H') }, line_delcharback }, | |
+ { { CONTROL('H') }, line_delcharprev }, | |
{ { CONTROL('M') }, line_newline }, | |
{ { CONTROL('J') }, line_newline }, | |
{ { '\r' }, line_newline }, | |
@@ -62,7 +71,9 @@ static struct keybind { | |
{ { CONTROL('D') }, line_exit }, | |
{ { CONTROL('E') }, line_deltoend }, | |
{ { KEY_UP }, history_menu }, | |
+ { { KEY_CSI_UP }, history_menu }, | |
{ { KEY_DOWN }, history_menu }, | |
+ { { KEY_CSI_DOWN }, history_menu }, | |
{ { CONTROL('P') }, history_menu }, | |
{ { CONTROL('N') }, history_menu }, | |
{ { '\t' }, complete_nick }, |