Browse Source

Win32: Fix for mangled output on the terminal on exit.

nfactor-troky
Ycros 13 years ago
parent
commit
e04aee24d3
  1. 18
      main.c

18
main.c

@ -993,6 +993,11 @@ static void workio_cmd_free(struct workio_cmd *wc) @@ -993,6 +993,11 @@ static void workio_cmd_free(struct workio_cmd *wc)
static void disable_curses(void)
{
if (test_and_clear(&curses_active)) {
#ifdef WIN32
leaveok(logwin, false);
leaveok(statuswin, false);
leaveok(mainwin, false);
#endif
nocbreak();
echo();
delwin(logwin);
@ -1000,6 +1005,19 @@ static void disable_curses(void) @@ -1000,6 +1005,19 @@ static void disable_curses(void)
delwin(mainwin);
endwin();
refresh();
#ifdef WIN32
// Move the cursor to after curses output.
HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO csbi;
COORD coord;
if (GetConsoleScreenBufferInfo(hout, &csbi)) {
coord.X = 0;
coord.Y = csbi.dwSize.Y - 1;
SetConsoleCursorPosition(hout, coord);
}
#endif
}
}

Loading…
Cancel
Save