}
#if defined (VI_MODE)
if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
+ key != ANYOTHERKEY &&
_rl_vi_textmod_command (key))
_rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
#endif
_rl_bind_if_unbound ("\033[0D", rl_get_next_history);
#endif
+#ifdef __MINGW32__
+ /* Under Windows, when an extend key (like an arrow key) is
+ pressed, getch() will return 340 (octal) followed by a code for
+ the extended key. We use macros to transform those into the
+ normal ANSI terminal sequences for these keys. */
+
+ /* Up arrow. */
+ rl_macro_bind ("\340H", "\033[A", map);
+ /* Left arrow. */
+ rl_macro_bind ("\340K", "\033[D", map);
+ /* Right arrow. */
+ rl_macro_bind ("\340M", "\033[C", map);
+ /* Down arrow. */
+ rl_macro_bind ("\340P", "\033[B", map);
+#endif
+
_rl_bind_if_unbound ("\033[A", rl_get_previous_history);
_rl_bind_if_unbound ("\033[B", rl_get_next_history);
_rl_bind_if_unbound ("\033[C", rl_forward_char);
sp->macro = rl_executing_macro;
sp->catchsigs = rl_catch_signals;
+#if defined (SIGWINCH)
sp->catchsigwinch = rl_catch_sigwinch;
+#endif
return (0);
}
rl_executing_macro = sp->macro;
rl_catch_signals = sp->catchsigs;
+#if defined (SIGWINCH)
rl_catch_sigwinch = sp->catchsigwinch;
+#endif
return (0);
}