Index: terminal.c =================================================================== --- terminal.c (revision 264) +++ 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,20 @@ 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); + if ( hConOut != INVALID_HANDLE_VALUE ) + { + CONSOLE_SCREEN_BUFFER_INFO scr; + if ( 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) {