Am 06.12.2012 07:47, schrieb Dong Xu Wang:
> qemu_opts_print has no user now, so can re-write the function safely.
> 
> qemu_opts_print will be used while using "qemu-img create", it will
> produce the same output as previous code.
> 
> The behavior of this function has changed:
> 
> 1. Print every possible option, whether a value has been set or not.
> 2. Option descriptors may provide a default value.
> 3. Print to stdout instead of stderr.
> 
> Previously the behavior was to print every option that has been set.
> Options that have not been set would be skipped.
> 
> Signed-off-by: Dong Xu Wang <wdon...@linux.vnet.ibm.com>
> ---
>  qemu-option.c |   27 ++++++++++++++++++++-------
>  qemu-option.h |    1 +
>  2 files changed, 21 insertions(+), 7 deletions(-)
> 
> diff --git a/qemu-option.c b/qemu-option.c
> index 94557cf..e0628da 100644
> --- a/qemu-option.c
> +++ b/qemu-option.c
> @@ -862,15 +862,28 @@ void qemu_opts_del(QemuOpts *opts)
>  
>  int qemu_opts_print(QemuOpts *opts, void *dummy)
>  {
> -    QemuOpt *opt;
> +    QemuOptDesc *desc = opts->list->desc;
>  
> -    fprintf(stderr, "%s: %s:", opts->list->name,
> -            opts->id ? opts->id : "<noid>");
> -    QTAILQ_FOREACH(opt, &opts->head, next) {
> -        fprintf(stderr, " %s=\"%s\"", opt->name, opt->str);

I think we still need this old code path for the opts_accepts_any() ==
true case.

> diff --git a/qemu-option.h b/qemu-option.h
> index 002dd07..ab02023 100644
> --- a/qemu-option.h
> +++ b/qemu-option.h
> @@ -96,6 +96,7 @@ typedef struct QemuOptDesc {
>      const char *name;
>      enum QemuOptType type;
>      const char *help;
> +    const char *def_print_str;
>  } QemuOptDesc;

Shouldn't we try to make this the real default value instead of just
what is printed if an option isn't set?

Kevin

Reply via email to