diff options
author | pgen <p.gen.progs@gmail.com> | 2018-07-20 22:01:51 +0200 |
---|---|---|
committer | pgen <p.gen.progs@gmail.com> | 2018-07-21 00:28:10 +0200 |
commit | 8da7653da8336c4d169a8b67562e736326316c1a (patch) | |
tree | ed0c16233db90f3cd86c632981701ffd84b90432 | |
parent | 5c7577af5072f4b911796e0ed9984804cda772dd (diff) |
Improve signals handling
-rw-r--r-- | smenu.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -5856,9 +5856,19 @@ sig_handler(int s) { /* Standard termination signals */ /* """""""""""""""""""""""""""" */ + case SIGSEGV: + fputs("SIGSEGV received!\n", stderr); + tputs(TPARM1(carriage_return), 1, outch); + tputs(TPARM1(cursor_visible), 1, outch); + restore_term(fileno(stdin)); + + exit(EXIT_FAILURE); + case SIGTERM: case SIGHUP: fputs("Interrupted!\n", stderr); + tputs(TPARM1(carriage_return), 1, outch); + tputs(TPARM1(cursor_visible), 1, outch); restore_term(fileno(stdin)); exit(EXIT_FAILURE); @@ -7555,6 +7565,7 @@ main(int argc, char * argv[]) sigaction(SIGALRM, &sa, NULL); sigaction(SIGTERM, &sa, NULL); sigaction(SIGHUP, &sa, NULL); + sigaction(SIGSEGV, &sa, NULL); term.color_method = 1; /* we default to setaf/setbf to set colors */ term.curs_line = term.curs_column = 0; |