From 7f3c5ec870943f7f32c946ff9459dfd04fcb8e07 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 17 Sep 2016 11:50:37 +0300 Subject: Improve MinGW support in Readline These changes were already accepted upstream in Readline, but GDB did not yet import a newer Readline version. readline/Changelog.gdb: * util.c: Include rlshell.h. (_rl_tropen) [_WIN32 && !__CYGWIN__]: Open the trace file in the user's temporary directory. * tcap.h [HAVE_NCURSES_TERMCAP_H]: Include ncurses/termcap.h. * input.c (w32_isatty) [_WIN32 && !__CYGWIN__]: New function, to replace isatty that is not reliable enough on MS-Windows. (isatty) [_WIN32 && !__CYGWIN__]: Redirect to w32_isatty. (rl_getc): Call _getch, not getch, which could be an ncurses function when linked with ncurses, in which case getch will return EOF for any keystroke, because there's no curses window. * tilde.c (tilde_expand_word) [_WIN32]: * histfile.c (history_filename) [_WIN32]: Windows-specific environment variable to replace HOME if that is undefined. * funmap.c (default_funmap): Compile rl_paste_from_clipboard on all Windows platforms, not just Cygwin. * readline.h (rl_paste_from_clipboard): Include declaration for all Windows platforms. * display.c (insert_some_chars, delete_chars): Don't use the MinGW-specific code if linked with ncurses. * configure.in: * config.h.in: Support ncurses/termcap.h. The configure script was updated accordingly. * complete.c [_WIN32 && !__CYGWIN__]: Initialize _rl_completion_case_fold to 1. (printable_part, rl_filename_completion_function) [_WIN32 && !__CYGWIN__]: Handle the drive letter. --- readline/display.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'readline/display.c') diff --git a/readline/display.c b/readline/display.c index 7653d873197..90443057974 100644 --- a/readline/display.c +++ b/readline/display.c @@ -2374,7 +2374,7 @@ insert_some_chars (string, count, col) char *string; int count, col; { -#if defined (__MSDOS__) || defined (__MINGW32__) +#if defined (__MSDOS__) || (defined (__MINGW32__) && !defined (NCURSES_VERSION)) _rl_output_some_chars (string, count); #else /* DEBUGGING */ @@ -2426,7 +2426,7 @@ delete_chars (count) if (count > _rl_screenwidth) /* XXX */ return; -#if !defined (__MSDOS__) && !defined (__MINGW32__) +#if !defined (__MSDOS__) && !(defined (__MINGW32__) && !defined (NCURSES_VERSION)) if (_rl_term_DC && *_rl_term_DC) { char *buffer; -- cgit v1.2.1