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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list