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 <arm...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> --- contrib/ivshmem-server/main.c | 4 +--- qdev-monitor.c | 3 +-- qemu-nbd.c | 3 +-- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/contrib/ivshmem-server/main.c b/contrib/ivshmem-server/main.c index 54ff001..00508b5 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 30936df..3ce4710 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 65c0ebd..706552e 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; } -- 2.4.3