/* typewinsize */ int owl_variable_typewinsize_set(owl_variable *v, void *newval) { int rv; rv = owl_variable_int_set_default(v, newval); if (0 == rv) owl_function_resize(); return(rv); }
static void sig_handler_main_thread(void *data) { int sig = GPOINTER_TO_INT(data); owl_function_debugmsg("Got signal %d", sig); if (sig == SIGWINCH) { owl_function_resize(); } else if (sig == SIGTERM || sig == SIGHUP) { owl_function_quit(); } else if (sig == SIGINT && owl_global_take_interrupt(&g)) { owl_input in; in.ch = in.uch = owl_global_get_startup_tio(&g)->c_cc[VINTR]; owl_process_input_char(in); } }
void sig_handler(int sig, siginfo_t *si, void *data) { if (sig==SIGWINCH) { /* we can't inturrupt a malloc here, so it just sets a flag * schedulding a resize for later */ owl_function_resize(); } else if (sig==SIGPIPE || sig==SIGCHLD) { /* Set a flag and some info that we got the sigpipe * so we can record that we got it and why... */ owl_global_set_errsignal(&g, sig, si); } else if (sig==SIGTERM || sig==SIGHUP) { owl_function_quit(); } }