reader.cpp: send smkx/rmkx when entering/leaving interactive mode

Closes #2139.
This commit is contained in:
David Adam 2015-09-09 17:11:53 +08:00
parent e9fcbb334e
commit a66d44054c

View file

@ -43,6 +43,20 @@ commence.
#include <sys/select.h>
#endif
#if HAVE_NCURSES_H
#include <ncurses.h>
#elif HAVE_NCURSES_CURSES_H
#include <ncurses/curses.h>
#else
#include <curses.h>
#endif
#if HAVE_TERM_H
#include <term.h>
#elif HAVE_NCURSES_TERM_H
#include <ncurses/term.h>
#endif
#include <signal.h>
#include <fcntl.h>
#include <wchar.h>
@ -3083,6 +3097,13 @@ const wchar_t *reader_readline(int nchars)
exec_prompt();
/* Send the smkx sequence if defined to enable arrow keys etc.
See https://github.com/fish-shell/fish-shell/issues/2139 and
http://invisible-island.net/xterm/xterm.faq.html#xterm_arrows
*/
tputs(keypad_xmit, 1, &writeb);
reader_super_highlight_me_plenty();
s_reset(&data->screen, screen_reset_abandon_line);
reader_repaint();
@ -4195,6 +4216,13 @@ const wchar_t *reader_readline(int nchars)
wperror(L"tcsetattr");
}
/* Send the rmkx sequence if defined to disable arrow keys etc.
See https://github.com/fish-shell/fish-shell/issues/2139 and
http://invisible-island.net/xterm/xterm.faq.html#xterm_arrows
*/
tputs(keypad_local, 1, &writeb);
set_color(rgb_color_t::reset(), rgb_color_t::reset());
}