void int_error(int t_num, const char str[], va_dcl) #endif { #ifdef VA_START va_list args; #endif char error_message[128] = {'\0'}; /* reprint line if screen has been written to */ if (t_num == DATAFILE) { df_showdata(); } else if (t_num != NO_CARET) { /* put caret under error */ if (!screen_ok) PRINT_MESSAGE_TO_STDERR; PRINT_SPACES_UNDER_PROMPT; PRINT_SPACES_UPTO_TOKEN; PRINT_CARET; } PRINT_SPACES_UNDER_PROMPT; PRINT_FILE_AND_LINE; #ifdef VA_START VA_START(args, str); # if defined(HAVE_VFPRINTF) || _LIBC vsnprintf(error_message, sizeof(error_message), str, args); fprintf(stderr,"%.120s",error_message); # else _doprnt(str, args, stderr); # endif va_end(args); #else fprintf(stderr, str, a1, a2, a3, a4, a5, a6, a7, a8); #ifdef HAVE_SNPRINTF snprintf(error_message, sizeof(error_message), str, a1, a2, a3, a4, a5, a6, a7, a8); #else sprintf(error_message, str, a1, a2, a3, a4, a5, a6, a7, a8); #endif #endif fputs("\n\n", stderr); /* We are bailing out of nested context without ever reaching */ /* the normal cleanup code. Reset any flags before bailing. */ df_reset_after_error(); eval_reset_after_error(); clause_reset_after_error(); parse_reset_after_error(); scanning_range_in_progress = FALSE; inside_zoom = FALSE; /* Load error state variables */ update_gpval_variables(2); fill_gpval_string("GPVAL_ERRMSG", error_message); bail_to_command_line(); }
void common_error_exit() { /* We are bailing out of nested context without ever reaching */ /* the normal cleanup code. Reset any flags before bailing. */ df_reset_after_error(); eval_reset_after_error(); clause_reset_after_error(); parse_reset_after_error(); scanning_range_in_progress = FALSE; inside_zoom = FALSE; /* Load error state variables */ update_gpval_variables(2); bail_to_command_line(); }