From 543202c0ddbcc4ee97d82fe45356e1ab00093f90 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Thu, 17 Dec 2015 17:35:14 +0100 Subject: error: Don't append a newline when printing the error hint Since commit 50b7b00, we have error_append_hint() to conveniently accumulate Error member @hint. error_report_err() prints it with a newline appended. Consequently, users of error_append_hint() need to know whether theirs is the final line of the hint to decide whether it needs a newline. Not a nice interface. Change error_report_err() to print just the hint, and the (still few) users of error_append_hint() to add the required newline. Cc: Eric Blake Signed-off-by: Markus Armbruster Reviewed-by: Eric Blake Message-Id: <1450370121-5768-7-git-send-email-armbru@redhat.com> --- qdev-monitor.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'qdev-monitor.c') diff --git a/qdev-monitor.c b/qdev-monitor.c index a35098f711..30936dfba4 100644 --- a/qdev-monitor.c +++ b/qdev-monitor.c @@ -304,6 +304,7 @@ static void qbus_list_bus(DeviceState *dev, Error **errp) error_append_hint(errp, "%s\"%s\"", sep, child->name); sep = ", "; } + error_append_hint(errp, "\n"); } static void qbus_list_dev(BusState *bus, Error **errp) @@ -321,6 +322,7 @@ static void qbus_list_dev(BusState *bus, Error **errp) } sep = ", "; } + error_append_hint(errp, "\n"); } static BusState *qbus_find_bus(DeviceState *dev, char *elem) -- cgit 1.4.1 From 782886719822c956e800dfb9c0665e2b301cb1fb Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Fri, 18 Dec 2015 16:35:07 +0100 Subject: error: Use error_report_err() instead of ad hoc prints Unlike ad hoc prints, error_report_err() uses the error whole instead of just its message obtained with error_get_pretty(). This avoids suppressing its hint (see commit 50b7b00). Example: $ bld/ivshmem-server -l 42@ Parameter 'shm_size' expects a size You may use k, M, G or T suffixes for kilobytes, megabytes, gigabytes and terabytes. The last line is new with this patch. While there, drop a "cannot parse shm size: " message prefix; it's redundant, because the error message proper is always of the form "Parameter 'shm_size' expects ...". Signed-off-by: Markus Armbruster Reviewed-by: Eric Blake Message-Id: <1450452927-8346-5-git-send-email-armbru@redhat.com> --- contrib/ivshmem-server/main.c | 4 +--- qdev-monitor.c | 3 +-- qemu-nbd.c | 3 +-- 3 files changed, 3 insertions(+), 7 deletions(-) (limited to 'qdev-monitor.c') diff --git a/contrib/ivshmem-server/main.c b/contrib/ivshmem-server/main.c index 54ff001c23..00508b5edd 100644 --- a/contrib/ivshmem-server/main.c +++ b/contrib/ivshmem-server/main.c @@ -106,9 +106,7 @@ ivshmem_server_parse_args(IvshmemServerArgs *args, int argc, char *argv[]) case 'l': /* shm_size */ parse_option_size("shm_size", optarg, &args->shm_size, &errp); if (errp) { - fprintf(stderr, "cannot parse shm size: %s\n", - error_get_pretty(errp)); - error_free(errp); + error_report_err(errp); ivshmem_server_usage(argv[0], 1); } break; diff --git a/qdev-monitor.c b/qdev-monitor.c index 30936dfba4..3ce47109e3 100644 --- a/qdev-monitor.c +++ b/qdev-monitor.c @@ -266,8 +266,7 @@ int qdev_device_help(QemuOpts *opts) return 1; error: - error_printf("%s\n", error_get_pretty(local_err)); - error_free(local_err); + error_report_err(local_err); return 1; } diff --git a/qemu-nbd.c b/qemu-nbd.c index 65c0ebda04..706552e64c 100644 --- a/qemu-nbd.c +++ b/qemu-nbd.c @@ -251,8 +251,7 @@ static void *nbd_client_thread(void *arg) &size, &local_error); if (ret < 0) { if (local_error) { - fprintf(stderr, "%s\n", error_get_pretty(local_error)); - error_free(local_error); + error_report_err(local_error); } goto out_socket; } -- cgit 1.4.1