diff --git a/tools/vsh.c b/tools/vsh.c index 64507fe560..91e2ae2067 100644 --- a/tools/vsh.c +++ b/tools/vsh.c @@ -2111,18 +2111,18 @@ vshTTYMakeRaw(vshControl *ctl G_GNUC_UNUSED, } -void -vshError(vshControl *ctl, const char *format, ...) +static void G_GNUC_PRINTF(3, 0) +vshPrintStderr(vshControl *ctl, + int level, + const char *format, + va_list ap) { - va_list ap; g_autofree char *str = NULL; - va_start(ap, format); str = g_strdup_vprintf(format, ap); - va_end(ap); if (ctl) - vshOutputLogFile(ctl, VSH_ERR_ERROR, str); + vshOutputLogFile(ctl, level, str); /* Most output is to stdout, but if someone ran virsh 2>&1, then * printing to stderr will not interleave correctly with stdout @@ -2133,6 +2133,17 @@ vshError(vshControl *ctl, const char *format, ...) } +void +vshError(vshControl *ctl, const char *format, ...) +{ + va_list ap; + + va_start(ap, format); + vshPrintStderr(ctl, VSH_ERR_ERROR, format, ap); + va_end(ap); +} + + void vshEventLoop(void *opaque) {