diff options
Diffstat (limited to 'news/tin/patches/patch-al')
-rw-r--r-- | news/tin/patches/patch-al | 142 |
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; + } |