diff options
author | Přemysl Eric Janouch <p@janouch.name> | 2021-09-06 21:20:40 +0200 |
---|---|---|
committer | Přemysl Eric Janouch <p@janouch.name> | 2021-09-06 21:30:03 +0200 |
commit | 30777e8fd305f322b4ddd197ebeab894a63b3a8a (patch) | |
tree | 3a92cb8d87b4db0d4308e7a6bafa828e479bc808 | |
parent | 353174ee3c5f3990f6745079a3fcb8dd98f728e0 (diff) | |
download | nncmpp-30777e8fd305f322b4ddd197ebeab894a63b3a8a.tar.gz nncmpp-30777e8fd305f322b4ddd197ebeab894a63b3a8a.tar.xz nncmpp-30777e8fd305f322b4ddd197ebeab894a63b3a8a.zip |
Improve terminal initialisation
Don't just abort() on failures, print a proper error message.
Also, set up ncurses as late as possible. This should be alright wrt.
signal handlers according to ncurses code, as well as XSI:
> Curses implementations may provide for special handling of
> the SIGINT, SIGQUIT and SIGTSTP signals if their disposition
> is SIG_DFL at the time initscr is called ...
termo blocks job control, so SIGTSTP is not a concern at all.
-rw-r--r-- | nncmpp.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -1254,9 +1254,9 @@ app_init_terminal (void) { TERMO_CHECK_VERSION; if (!(g.tk = termo_new (STDIN_FILENO, NULL, 0))) - abort (); + exit_fatal ("failed to set up the terminal"); if (!initscr () || nonl () == ERR) - abort (); + exit_fatal ("failed to set up the terminal"); // By default we don't use any colors so they're not required... if (start_color () == ERR @@ -4574,9 +4574,9 @@ main (int argc, char *argv[]) app_init_context (); app_load_configuration (); - app_init_terminal (); signals_setup_handlers (); app_init_poller_events (); + app_init_terminal (); g_normal_keys = app_init_bindings ("normal", g_normal_defaults, N_ELEMENTS (g_normal_defaults), &g_normal_keys_len); |