R_API void r_cons_break_end() { I.breaked = R_FALSE; r_print_set_interrupted (I.breaked); #if __UNIX__ || __CYGWIN__ signal (SIGINT, SIG_IGN); #endif }
static void break_signal(int sig) { I.breaked = true; r_print_set_interrupted (I.breaked); if (I.event_interrupt) { I.event_interrupt (I.data); } }
R_API void r_cons_break_end() { I.breaked = false; I.timeout = 0; r_print_set_interrupted (I.breaked); #if __UNIX__ || __CYGWIN__ signal (SIGINT, SIG_IGN); #endif if (!r_stack_is_empty (I.break_stack)) { //free all the stack r_stack_free (I.break_stack); //create another one I.break_stack = r_stack_newf (6, break_stack_free); I.data = NULL; I.event_interrupt = NULL; } }
R_API void r_cons_break_pop() { //restore old state if (I.break_stack) { RConsBreakStack *b = NULL; r_print_set_interrupted (I.breaked); b = r_stack_pop (I.break_stack); if (b) { I.event_interrupt = b->event_interrupt; I.data = b->data; break_stack_free (b); } else { //there is not more elements in the stack #if __UNIX__ || __CYGWIN__ signal (SIGINT, SIG_IGN); #endif I.breaked = false; } } }