Fix segfault when setting DFHACK_HEADLESS but not PRINT_MODE:TEXT

endwin() is unhappy if initscr() wasn't called
develop
lethosor 2020-04-28 21:38:47 -04:00
parent 6bdbf5b0dd
commit 24cebbda58
1 changed files with 11 additions and 4 deletions

@ -1692,14 +1692,21 @@ bool Core::Init()
if (is_headless) if (is_headless)
{ {
#ifdef LINUX_BUILD #ifdef LINUX_BUILD
auto endwin = (int(*)(void))dlsym(RTLD_DEFAULT, "endwin"); if (is_text_mode)
if (endwin)
{ {
endwin(); auto endwin = (int(*)(void))dlsym(RTLD_DEFAULT, "endwin");
if (endwin)
{
endwin();
}
else
{
cerr << "endwin(): bind failed" << endl;
}
} }
else else
{ {
cerr << "endwin(): bind failed" << endl; cerr << "Headless mode requires PRINT_MODE:TEXT" << endl;
} }
#else #else
cerr << "Headless mode not supported on Windows" << endl; cerr << "Headless mode not supported on Windows" << endl;