/* * Used by built-in utilities to prefix shell and utility name to message * (also unwinds environments for special builtins). */ void bi_errorf(const char *fmt, ...) { va_list va; /* debugging: note that stdout not valid */ shl_stdout_ok = false; exstat = 1; va_start(va, fmt); vwarningf(VWARNINGF_ERRORPREFIX | VWARNINGF_FILELINE | VWARNINGF_BUILTIN, fmt, va); va_end(va); /* * POSIX special builtins and ksh special builtins cause * non-interactive shells to exit. * XXX odd use of KEEPASN; also may not want LERROR here */ if (builtin_spec) { builtin_argv0 = NULL; unwind(LERROR); } }
void internal_warningf(const char *fmt, ...) { va_list va; va_start(va, fmt); vwarningf(VWARNINGF_INTERNAL, fmt, va); va_end(va); }
/* like errorf(), but no unwind is done */ void warningf(bool fileline, const char *fmt, ...) { va_list va; va_start(va, fmt); vwarningf(VWARNINGF_ERRORPREFIX | (fileline ? VWARNINGF_FILELINE : 0), fmt, va); va_end(va); }
void errorf(const char *fmt, ...) { va_list va; exstat = 1; /* debugging: note that stdout not valid */ shl_stdout_ok = false; va_start(va, fmt); vwarningf(VWARNINGF_ERRORPREFIX | VWARNINGF_FILELINE, fmt, va); va_end(va); unwind(LERROR); }