-
deuce authored
Basically, this just tracks if curses is already suspended or not and if it is, does not call noraw() and endwin() again. This should fix the issue on Linux since well-behaved scripts will call uifc.bail() before they exit. It appears what's happening is that jsexec sets the terminal as raw, then ciolib is initialized at which point ncurses saves the current terminal state. Before exiting, jsexec sets the terminal back to cooked mode, then exits. atexit() ciolib calls curs_suspend() which calls endwin() which restores the previously saved terminal state (ie: raw).
7a1b494d