{
void (*old_hook)(const char *, long, const char *, va_list) =
set_com_err_hook((void (*) (const char *, long, const char *, va_list))menu_com_err_hook);
-
- if (initscr() == (WINDOW *)ERR)
+#ifdef CURSES_HAS_NEWTERM
+ SCREEN *scrn = newterm(NULL, stdout, stdin);
+#else
+ WINDOW *scrn = initscr();
+#endif
+ if (!scrn)
{
- fputs("Can't initialize curses!\n", stderr);
+ fputs("Can't initialize curses!\nReverting to -nomenu mode\n\n", stderr);
Start_no_menu(m);
}
else
{
+#ifdef CURSES_HAS_NEWTERM
+ set_term(scrn);
+#endif
raw(); /* We parse & print everything ourselves */
noecho();
cur_ms = make_ms(0); /* So we always have some current */
/* menu_screen */
/* Run the menu */
Do_menu(m, -1, NULL);
+ Cleanup_menu();
}
set_com_err_hook(old_hook);
- Cleanup_menu();
}
void Cleanup_menu(void)
{
wclear(cur_ms->ms_screen);
wrefresh(cur_ms->ms_screen);
+ endwin();
}
- endwin();
}
/*