From c12f92a05ec861a4248806c8597d85b43e36d664 Mon Sep 17 00:00:00 2001 From: Jiri Denemark Date: Thu, 20 Feb 2025 13:12:22 +0100 Subject: [PATCH] virsh: Refactor vshError The code is moved into a newly introduced generic vshPrintStderr and vshError changed into a tiny wrapper. Signed-off-by: Jiri Denemark Reviewed-by: Michal Privoznik --- tools/vsh.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) 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) {