Luiz Capitulino <lcapitul...@redhat.com> writes: > On Thu, 18 Mar 2010 17:33:12 +0100 > Markus Armbruster <arm...@redhat.com> wrote: > >> >> Signed-off-by: Markus Armbruster <arm...@redhat.com> >> --- >> qemu-option.c | 17 ++++++----------- >> 1 files changed, 6 insertions(+), 11 deletions(-) >> >> diff --git a/qemu-option.c b/qemu-option.c >> index e3916be..5c39666 100644 >> --- a/qemu-option.c >> +++ b/qemu-option.c >> @@ -176,7 +176,7 @@ static int parse_option_bool(const char *name, const >> char *value, int *ret) >> } else if (!strcmp(value, "off")) { >> *ret = 0; >> } else { >> - fprintf(stderr, "Option '%s': Use 'on' or 'off'\n", name); >> + qerror_report(QERR_INVALID_PARAMETER_VALUE, name, "'on' or >> 'off'"); >> return -1; >> } >> } else { >> @@ -193,12 +193,12 @@ static int parse_option_number(const char *name, const >> char *value, uint64_t *re >> if (value != NULL) { >> number = strtoull(value, &postfix, 0); >> if (*postfix != '\0') { >> - fprintf(stderr, "Option '%s' needs a number as parameter\n", >> name); >> + qerror_report(QERR_INVALID_PARAMETER_VALUE, name, "a number"); >> return -1; >> } >> *ret = number; >> } else { >> - fprintf(stderr, "Option '%s' needs a parameter\n", name); >> + qerror_report(QERR_INVALID_PARAMETER_VALUE, name, "a number"); >> return -1; >> } >> return 0; >> @@ -226,13 +226,11 @@ static int parse_option_size(const char *name, const >> char *value, uint64_t *ret) >> *ret = (uint64_t) sizef; >> break; >> default: >> - fprintf(stderr, "Option '%s' needs size as parameter\n", name); >> - fprintf(stderr, "You may use k, M, G or T suffixes for " >> - "kilobytes, megabytes, gigabytes and terabytes.\n"); >> + qerror_report(QERR_INVALID_PARAMETER_VALUE, name, "a size"); > > What about using error_printf_unless_qmp() to improve the error message? > Although I don't like it very much it documents the code and if we feel like > we're abusing it we'll have an excuse to do something more complicated > like error message override.
Sure, can do that. >> return -1; >> } >> } else { >> - fprintf(stderr, "Option '%s' needs a parameter\n", name); >> + qerror_report(QERR_INVALID_PARAMETER_VALUE, name, "a size"); >> return -1; >> } >> return 0; >> @@ -581,8 +579,7 @@ int qemu_opt_set(QemuOpts *opts, const char *name, const >> char *value) >> if (i == 0) { >> /* empty list -> allow any */; >> } else { >> - fprintf(stderr, "option \"%s\" is not valid for %s\n", >> - name, opts->list->name); >> + qerror_report(QERR_INVALID_PARAMETER, name); >> return -1; >> } >> } >> @@ -598,8 +595,6 @@ int qemu_opt_set(QemuOpts *opts, const char *name, const >> char *value) >> opt->str = qemu_strdup(value); >> } >> if (qemu_opt_parse(opt) < 0) { >> - fprintf(stderr, "Failed to parse \"%s\" for \"%s.%s\"\n", opt->str, >> - opts->list->name, opt->name); >> qemu_opt_del(opt); >> return -1; >> } > > Not generating an error on purpose here? Yes. When qemu_opt_parse() returns failure, an error was already emitted. The first few patch hunks convert those errors.