1 /* vi: set sw=4 ts=4: */
5 * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
7 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
13 smallint logmode = LOGMODE_STDIO;
14 const char *msg_eol = "\n";
16 void bb_verror_msg(const char *s, va_list p, const char* strerr)
18 /* va_copy is used because it is not portable
19 * to use va_list p twice */
23 if (!s) /* nomsg[_and_die] uses NULL fmt */
24 s = ""; /* some libc don't like printf(NULL) */
26 if (logmode & LOGMODE_STDIO) {
28 fprintf(stderr, "%s: ", applet_name);
29 vfprintf(stderr, s, p);
31 fputs(msg_eol, stderr);
33 fprintf(stderr, "%s%s%s",
37 if (ENABLE_FEATURE_SYSLOG && (logmode & LOGMODE_SYSLOG)) {
39 vsyslog(LOG_ERR, s, p2);
42 if (vasprintf(&msg, s, p2) < 0) {
43 fprintf(stderr, "%s: %s\n", applet_name, bb_msg_memory_exhausted);
46 syslog(LOG_ERR, "%s: %s", msg, strerr);