Index: readline/terminal.c =================================================================== --- readline/terminal.c (revision 328) +++ readline/terminal.c (working copy) @@ -70,6 +70,11 @@ #include "rlshell.h" #include "xmalloc.h" +#if defined (__MINGW32__) +# include +# include +#endif + #define CUSTOM_REDISPLAY_FUNC() (rl_redisplay_function != rl_redisplay) #define CUSTOM_INPUT_FUNC() (rl_getc_function != rl_getc) @@ -201,6 +206,15 @@ struct winsize window_size; #endif /* TIOCGWINSZ */ +/* For mingw version, we get console size from windows API*/ +#if defined (__MINGW32__) + HANDLE hConOut = GetStdHandle(STD_OUTPUT_HANDLE); + CONSOLE_SCREEN_BUFFER_INFO scr; + GetConsoleScreenBufferInfo(hConOut, &scr); + _rl_screenwidth = scr.dwSize.X; + _rl_screenheight = scr.srWindow.Bottom - scr.srWindow.Top + 1; +#endif + #if defined (TIOCGWINSZ) if (ioctl (tty, TIOCGWINSZ, &window_size) == 0) { @@ -299,6 +313,7 @@ void rl_resize_terminal () { +printf("rl_resize_terminal\n"); if (readline_echoing_p) { _rl_get_screen_size (fileno (rl_instream), 1); @@ -593,8 +608,8 @@ { register int i; -#ifndef __MSDOS__ - if (_rl_term_backspace) +#if !defined (__MSDOS__) && !defined (__MINGW32__) + if (_rl_term_backspace) for (i = 0; i < count; i++) tputs (_rl_term_backspace, 1, _rl_output_character_function); else