/* * Send a message to syslog and/or stderr. */ void chat_logf(const char *fmt, ...) { char line[1024]; va_list args; va_start(args, fmt); vfmtmsg(line, sizeof(line), fmt, args); va_end(args); if (to_log) syslog(LOG_INFO, "%s", line); if (to_stderr) fprintf(stderr, "%s\n", line); }
void fatal(int code, const char *fmt, ...) { char line[1024]; va_list args; va_start(args, fmt); vfmtmsg(line, sizeof(line), fmt, args); va_end(args); if (to_log) syslog(LOG_ERR, "%s", line); if (to_stderr) fprintf(stderr, "%s\n", line); terminate(code); }
{ int n; va_list pvar; char buf[256]; #if __STDC__ va_start(pvar, fmt); #else void *arg; char *fmt; va_start(pvar); arg = va_arg(pvar, void *); fmt = va_arg(pvar, char *); #endif n = vfmtmsg(buf, sizeof(buf), fmt, pvar); va_end(pvar); if (linep + n + 1 > line + sizeof(line)) { syslog(LOG_DEBUG, "%s", line); linep = line; } strcpy(linep, buf); linep += n; } /* * print_string - print a readable representation of a string using * printer. */ void