On Mon, Jan 14, 2013 at 10:51 AM, Michal Privoznik <mprivozn@xxxxxxxxxx> wrote: > On 14.01.2013 17:33, Doug Goldstein wrote: >> On Mon, Jan 14, 2013 at 9:59 AM, Michal Privoznik <mprivozn@xxxxxxxxxx> wrote: >>> --- >>> tools/virsh.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++----------- >>> 1 file changed, 51 insertions(+), 11 deletions(-) >>> >>> diff --git a/tools/virsh.c b/tools/virsh.c >>> index 283194a..a764b3e 100644 >>> --- a/tools/virsh.c >>> +++ b/tools/virsh.c >>> @@ -447,8 +447,16 @@ static const vshCmdInfo info_help[] = { >>> }; >>> >>> static const vshCmdOptDef opts_help[] = { >>> - {"command", VSH_OT_DATA, 0, N_("Prints global help, command specific help, or help for a group of related commands")}, >>> - {NULL, 0, 0, NULL} >>> + {.name = "command", >>> + .type = VSH_OT_DATA, >>> + .flags = 0, >>> + .help = N_("Prints global help, command specific help, or help for a group of related commands") >>> + }, >>> + {.name = NULL, >>> + .type = 0, >>> + .flags = 0, >>> + .help = NULL >>> + } >>> }; >>> >>> static bool >>> @@ -698,8 +706,16 @@ static const vshCmdInfo info_cd[] = { >>> }; >>> >>> static const vshCmdOptDef opts_cd[] = { >>> - {"dir", VSH_OT_DATA, 0, N_("directory to switch to (default: home or else root)")}, >>> - {NULL, 0, 0, NULL} >>> + {.name = "dir", >>> + .type = VSH_OT_DATA, >>> + .flags = 0, >>> + .help = N_("directory to switch to (default: home or else root)") >>> + }, >>> + {.name = NULL, >>> + .type = 0, >>> + .flags = 0, >>> + .help = NULL >>> + } >>> }; >>> >>> static bool >>> @@ -770,11 +786,31 @@ static const vshCmdInfo info_echo[] = { >>> }; >>> >>> static const vshCmdOptDef opts_echo[] = { >>> - {"shell", VSH_OT_BOOL, 0, N_("escape for shell use")}, >>> - {"xml", VSH_OT_BOOL, 0, N_("escape for XML use")}, >>> - {"str", VSH_OT_ALIAS, 0, "string"}, >>> - {"string", VSH_OT_ARGV, 0, N_("arguments to echo")}, >>> - {NULL, 0, 0, NULL} >>> + {.name = "shell", >>> + .type = VSH_OT_BOOL, >>> + .flags = 0, >>> + .help = N_("escape for shell use") >>> + }, >>> + {.name = "xml", >>> + .type = VSH_OT_BOOL, >>> + .flags = 0, >>> + .help = N_("escape for XML use") >>> + }, >>> + {.name = "str", >>> + .type = VSH_OT_ALIAS, >>> + .flags = 0, >>> + .help = "string" >>> + }, >>> + {.name = "string", >>> + .type = VSH_OT_ARGV, >>> + .flags = 0, >>> + .help = N_("arguments to echo") >>> + }, >>> + {.name = NULL, >>> + .type = 0, >>> + .flags = 0, >>> + .help = NULL >>> + } >>> }; >>> >>> /* Exists mainly for debugging virsh, but also handy for adding back >>> @@ -923,8 +959,12 @@ vshCmddefOptParse(const vshCmdDef *cmd, uint32_t *opts_need_arg, >>> return 0; >>> } >>> >>> -static vshCmdOptDef helpopt = {"help", VSH_OT_BOOL, 0, >>> - N_("print help for this function")}; >>> +static vshCmdOptDef helpopt = { >>> + .name = "help", >>> + .type = VSH_OT_BOOL, >>> + .flags = 0, >>> + .help = N_("print help for this function") >>> +}; >>> static const vshCmdOptDef * >>> vshCmddefGetOption(vshControl *ctl, const vshCmdDef *cmd, const char *name, >>> uint32_t *opts_seen, int *opt_index) >>> -- >>> 1.8.0.2 >>> >>> -- >>> libvir-list mailing list >>> libvir-list@xxxxxxxxxx >>> https://www.redhat.com/mailman/listinfo/libvir-list >> >> ACK with a caveat. How would you feel about a macro called >> VSH_CMD_OPT_END that is defined to: >> >> {.name = NULL, >> .type = 0, >> .flags = 0, >> .help = NULL >> } >> >> Just a thought to cutdown on the number of changes necessary if/when >> the members of the struct change. >> > > Oh, I forgot to update this patch. If you take look into next patches, > you'll see I am using bare > > {.name = NULL} > > which has the same effect as your macro. I'll update this patch accordingly. > > Michal Works for me. Thanks Michal. -- Doug Goldstein -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list