On Mon, Jan 14, 2013 at 9:59 AM, Michal Privoznik
<mprivozn(a)redhat.com> 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(a)redhat.com
>
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