// SPDX-License-Identifier: ISC #include #include #include #include __thread bool trace_cont; void trace_int_vmsg_nocopy(const char *prefix, const char *msg_fmt, va_list msg_ap) { int errsv = errno; if (prefix) fputs(prefix, stderr); vfprintf(stderr, msg_fmt, msg_ap); errno = errsv; } void trace_int_vmsg(const char *prefix, const char *msg_fmt, va_list msg_ap) { va_list msg_ap_copy; va_copy(msg_ap_copy, msg_ap); trace_int_vmsg_nocopy(prefix, msg_fmt, msg_ap_copy); va_end(msg_ap_copy); } void trace_int_msg(const char *prefix, const char *msg_fmt, ...) { va_list msg_ap; va_start(msg_ap, msg_fmt); trace_int_vmsg(prefix, msg_fmt, msg_ap); va_end(msg_ap); }