diff options
Diffstat (limited to 'Source/CursesDialog/ccmake.cxx')
-rw-r--r-- | Source/CursesDialog/ccmake.cxx | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/Source/CursesDialog/ccmake.cxx b/Source/CursesDialog/ccmake.cxx index ae4c0f6..1f7776c 100644 --- a/Source/CursesDialog/ccmake.cxx +++ b/Source/CursesDialog/ccmake.cxx @@ -9,8 +9,6 @@ #include <string> #include <vector> -#include <unistd.h> - #include "cmsys/Encoding.hxx" #include "cmCursesColor.h" @@ -53,31 +51,18 @@ static const char* cmDocumentationOptions[][2] = { cmCursesForm* cmCursesForm::CurrentForm = nullptr; +#ifndef _WIN32 extern "C" { static void onsig(int /*unused*/) { if (cmCursesForm::CurrentForm) { - endwin(); - if (initscr() == nullptr) { - static const char errmsg[] = "Error: ncurses initialization failed\n"; - auto r = write(STDERR_FILENO, errmsg, sizeof(errmsg) - 1); - static_cast<void>(r); - exit(1); - } - noecho(); /* Echo off */ - cbreak(); /* nl- or cr not needed */ - keypad(stdscr, true); /* Use key symbols as KEY_DOWN */ - refresh(); - int x; - int y; - getmaxyx(stdscr, y, x); - cmCursesForm::CurrentForm->Render(1, 1, x, y); - cmCursesForm::CurrentForm->UpdateStatusBar(); + cmCursesForm::CurrentForm->HandleResize(); } signal(SIGWINCH, onsig); } } +#endif // _WIN32 int main(int argc, char const* const* argv) { @@ -143,7 +128,9 @@ int main(int argc, char const* const* argv) keypad(stdscr, true); /* Use key symbols as KEY_DOWN */ cmCursesColor::InitColors(); +#ifndef _WIN32 signal(SIGWINCH, onsig); +#endif // _WIN32 int x; int y; |