diff options
author | Markus Armbruster <armbru@redhat.com> | 2010-02-18 17:14:17 +0100 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2010-03-16 16:55:05 +0100 |
commit | ba0fe87acd8937d403f60da63290aadb0b84827e (patch) | |
tree | b5d1be86dbdb9b3987d2aa4782e70d017ec8da5d /qemu-error.c | |
parent | 2f7920166d1aa402104d7b30d0225e71588f91f9 (diff) |
error: New error_printf() and error_vprintf()
Diffstat (limited to 'qemu-error.c')
-rw-r--r-- | qemu-error.c | 49 |
1 files changed, 42 insertions, 7 deletions
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 <armbru@redhat.com>, + * + * 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 <stdio.h> #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, |