summaryrefslogtreecommitdiff
path: root/news/tin/patches/patch-al
diff options
context:
space:
mode:
Diffstat (limited to 'news/tin/patches/patch-al')
-rw-r--r--news/tin/patches/patch-al142
1 files changed, 142 insertions, 0 deletions
diff --git a/news/tin/patches/patch-al b/news/tin/patches/patch-al
new file mode 100644
index 00000000000..581bdf6103e
--- /dev/null
+++ b/news/tin/patches/patch-al
@@ -0,0 +1,142 @@
+$NetBSD: patch-al,v 1.1 2009/10/22 22:01:26 wiz Exp $
+
+--- src/tcurses.c.orig 2008-12-30 20:26:25.000000000 +0100
++++ src/tcurses.c
+@@ -896,72 +896,77 @@ get_arrow_key(
+ # ifdef NCURSES_MOUSE_VERSION
+ MEVENT my_event;
+ # endif /* NCURSES_MOUSE_VERSION */
+- int ch = getch();
++ int ch;
+ int code = KEYMAP_UNKNOWN;
+
+- switch (ch) {
+- case KEY_DC:
+- code = KEYMAP_DEL;
+- break;
+-
+- case KEY_IC:
+- code = KEYMAP_INS;
+- break;
+-
+- case KEY_UP:
+- code = KEYMAP_UP;
+- break;
+-
+- case KEY_DOWN:
+- code = KEYMAP_DOWN;
+- break;
+-
+- case KEY_LEFT:
+- code = KEYMAP_LEFT;
+- break;
+-
+- case KEY_RIGHT:
+- code = KEYMAP_RIGHT;
+- break;
+-
+- case KEY_NPAGE:
+- code = KEYMAP_PAGE_DOWN;
+- break;
+-
+- case KEY_PPAGE:
+- code = KEYMAP_PAGE_UP;
+- break;
+-
+- case KEY_HOME:
+- code = KEYMAP_HOME;
+- break;
+-
+- case KEY_END:
+- code = KEYMAP_END;
+- break;
++ if (cmd_line)
++ code = cmd_get_arrow_key(prech);
++ else {
++ ch = getch();
++ switch (ch) {
++ case KEY_DC:
++ code = KEYMAP_DEL;
++ break;
++
++ case KEY_IC:
++ code = KEYMAP_INS;
++ break;
++
++ case KEY_UP:
++ code = KEYMAP_UP;
++ break;
++
++ case KEY_DOWN:
++ code = KEYMAP_DOWN;
++ break;
++
++ case KEY_LEFT:
++ code = KEYMAP_LEFT;
++ break;
++
++ case KEY_RIGHT:
++ code = KEYMAP_RIGHT;
++ break;
++
++ case KEY_NPAGE:
++ code = KEYMAP_PAGE_DOWN;
++ break;
++
++ case KEY_PPAGE:
++ code = KEYMAP_PAGE_UP;
++ break;
++
++ case KEY_HOME:
++ code = KEYMAP_HOME;
++ break;
++
++ case KEY_END:
++ code = KEYMAP_END;
++ break;
+
+ # ifdef NCURSES_MOUSE_VERSION
+- case KEY_MOUSE:
+- if (getmouse(&my_event) != ERR) {
+- switch ((int) my_event.bstate) {
+- case BUTTON1_CLICKED:
+- xmouse = MOUSE_BUTTON_1;
+- break;
+-
+- case BUTTON2_CLICKED:
+- xmouse = MOUSE_BUTTON_2;
+- break;
+-
+- case BUTTON3_CLICKED:
+- xmouse = MOUSE_BUTTON_3;
+- break;
++ case KEY_MOUSE:
++ if (getmouse(&my_event) != ERR) {
++ switch ((int) my_event.bstate) {
++ case BUTTON1_CLICKED:
++ xmouse = MOUSE_BUTTON_1;
++ break;
++
++ case BUTTON2_CLICKED:
++ xmouse = MOUSE_BUTTON_2;
++ break;
++
++ case BUTTON3_CLICKED:
++ xmouse = MOUSE_BUTTON_3;
++ break;
++ }
++ xcol = my_event.x; /* column */
++ xrow = my_event.y; /* row */
++ code = KEYMAP_MOUSE;
+ }
+- xcol = my_event.x; /* column */
+- xrow = my_event.y; /* row */
+- code = KEYMAP_MOUSE;
+- }
+- break;
++ break;
+ # endif /* NCURSES_MOUSE_VERSION */
++ }
+ }
+ return code;
+ }