static void verror_va (int err_code, SLCONST char *fmt, va_list ap) { char err [4096]; if (-1 == _pSLerr_init ()) { print_queue (); return; } if (err_code == 0) err_code = SL_INTRINSIC_ERROR; if (_pSLang_Error == 0) set_error (err_code); if (fmt == NULL) return; (void) SLvsnprintf (err, sizeof (err), (SLFUTURE_CONST char *)fmt, ap); if (Suspend_Error_Messages) (void) queue_message (Active_Error_Queue, err, _SLERR_MSG_ERROR); else print_error (_SLERR_MSG_ERROR, err); }
void SLsmg_vprintf (SLFUTURE_CONST char *fmt, va_list ap) { char buf[1024]; if (Smg_Inited == 0) return; (void) SLvsnprintf (buf, sizeof (buf), fmt, ap); SLsmg_write_string (buf); }
int _pSLerr_traceback_msg (SLFUTURE_CONST char *fmt, ...) { va_list ap; char msg [4096]; va_start(ap, fmt); (void) SLvsnprintf (msg, sizeof (msg), fmt, ap); va_end(ap); return queue_message (Active_Error_Queue, msg, _SLERR_MSG_TRACEBACK); }
static int va_mvprintw (SLcurses_Window_Type *w, int r, int c, int do_move, char *fmt, va_list ap) { char buf[1024]; if (do_move) SLcurses_wmove (w, r, c); (void) SLvsnprintf (buf, sizeof(buf), fmt, ap); SLcurses_waddnstr (w, buf, -1); return 0; }
/* This routine does not queue messages. It is used for tracing, etc. */ void _pSLerr_dump_msg (SLFUTURE_CONST char *fmt, ...) { char buf[1024]; va_list ap; va_start (ap, fmt); if (SLang_Dump_Routine != NULL) { (void) SLvsnprintf (buf, sizeof (buf), fmt, ap); (*SLang_Dump_Routine) (buf); } else { vfprintf (stderr, fmt, ap); fflush (stderr); } va_end (ap); }