From ba0fe87acd8937d403f60da63290aadb0b84827e Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Thu, 18 Feb 2010 17:14:17 +0100 Subject: error: New error_printf() and error_vprintf() --- qemu-error.c | 49 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 7 deletions(-) (limited to 'qemu-error.c') diff --git a/qemu-error.c b/qemu-error.c index 63bcdcfa1a..d20fd0f4d2 100644 --- a/qemu-error.c +++ b/qemu-error.c @@ -1,18 +1,53 @@ +/* + * Error reporting + * + * Copyright (C) 2010 Red Hat Inc. + * + * Authors: + * Markus Armbruster , + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + #include #include "monitor.h" #include "sysemu.h" -void qemu_error(const char *fmt, ...) +/* + * Print to current monitor if we have one, else to stderr. + * TODO should return int, so callers can calculate width, but that + * requires surgery to monitor_vprintf(). Left for another day. + */ +void error_vprintf(const char *fmt, va_list ap) { - va_list args; - - va_start(args, fmt); if (cur_mon) { - monitor_vprintf(cur_mon, fmt, args); + monitor_vprintf(cur_mon, fmt, ap); } else { - vfprintf(stderr, fmt, args); + vfprintf(stderr, fmt, ap); } - va_end(args); +} + +/* + * Print to current monitor if we have one, else to stderr. + * TODO just like error_vprintf() + */ +void error_printf(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + error_vprintf(fmt, ap); + va_end(ap); +} + +void qemu_error(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + error_vprintf(fmt, ap); + va_end(ap); } void qemu_error_internal(const char *file, int linenr, const char *func, -- cgit v1.2.3-55-g7522