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