void popup_renderstep(BoardMenu* boardmenu);
void save_to_file(char* filepath, BoardMenu* boardmenu);
+void exit_step(BoardMenu* boardmenu);
+
int
main(int argc, char** argv)
{
normal_renderstep(boardmenu);
int ch;
- while ((ch = getch()) != BINDING_QUIT) {
+ while (1) {
+
+ ch = getch();
if (boardmenu->popup_open == 0) {
normal_handleinput(boardmenu, ch);
/* save on exit - this causes weird stuff to happen, maybe it's not given enough time to write before program exits? */
/* save_to_file(boardfile_name, boardmenu); */
- exit_tscurses();
return 0;
}
case BINDING_WRITE:
save_to_file(boardfile_name, boardmenu);
break;
+ case BINDING_QUIT:
+ exit_step(boardmenu);
+ break;
case KEY_RESIZE:
/* ; */
/* int y, x; */
case BINDING_SCROLL_DOWN:
menu_driver(popup_menu, MENU_DOWN);
break;
+ case BINDING_QUIT:
+ boardmenu->popup_open = 0;
+ break;
}
}
begin_write(filepath, writeboard);
free_board(writeboard);
}
+
+void
+exit_step(BoardMenu* boardmenu)
+{
+ exit_tscurses();
+ exit(0);
+}