void signal_handler(int sig) { if (sig == SIGABRT || sig == SIGTERM) { gui_term(); fprintf(stderr, "\nCaught signal %d. Bye!\n", sig); proc_cleanup(proclist); exit(EXIT_FAILURE); } }
void input_reopen() { /*if(!freopen("/dev/tty", "r", stdin) || read(0, NULL, 0) != 0)*/ fclose(stdin); stdin = fopen("/dev/tty", "r"); if(!stdin){ gui_term(); fprintf(stderr, "uvi: freopen(\"/dev/tty\", \"r\", stdin) = %s\n", strerror(errno)); exit(1); } }
int main(int argc, char **argv) { struct sigaction action; int i; action.sa_handler = signal_handler; sigaction(SIGABRT, &action, NULL); sigaction(SIGTERM, &action, NULL); for(i = 1; i < argc; i++){ if(!strcmp(argv[i], "-f")){ global_force = 1; }else if(!strcmp(argv[i], "-d")){ global_debug = 1; }else{ fprintf(stderr, "Usage: %s [-f] [-d]\n" " -f: Don't prompt for lsof and strace\n" " -d: Debug mode\n" , *argv); return 1; } } extra_init(); gui_init(); proclist = proc_init(); gui_run(proclist); gui_term(); proc_cleanup(proclist); return 0; }