[libvirt] [PATCH 1/8] virsh: Add vshCmdCompleter and vshOptCompleter
Michal Privoznik
mprivozn at redhat.com
Mon Aug 19 14:45:05 UTC 2013
On 08.08.2013 16:38, Tomas Meszaros wrote:
> completer and completer_flags added to the _vshCmdDef and _vshCmdOptDef
> structures so it will be possible for completion generators to
> conveniently call completer functions with desired flags.
> ---
> tools/virsh-domain.c | 10 +++++-----
> tools/virsh.h | 7 +++++++
> 2 files changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
> index 8cafce4..5e1196f 100644
> --- a/tools/virsh-domain.c
> +++ b/tools/virsh-domain.c
> @@ -7889,10 +7889,10 @@ static const vshCmdInfo info_lxc_enter_namespace[] = {
> };
>
> static const vshCmdOptDef opts_lxc_enter_namespace[] = {
> - {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")},
> - {"noseclabel", VSH_OT_BOOL, 0, N_("Do not change process security label")},
> - {"cmd", VSH_OT_ARGV, VSH_OFLAG_REQ, N_("namespace")},
> - {NULL, 0, 0, NULL}
> + {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid"), NULL, 0},
> + {"noseclabel", VSH_OT_BOOL, 0, N_("Do not change process security label"), NULL, 0},
> + {"cmd", VSH_OT_ARGV, VSH_OFLAG_REQ, N_("namespace"), NULL, 0},
> + {NULL, 0, 0, NULL, NULL, 0}
> };
>
> static bool
> @@ -10276,7 +10276,7 @@ static const vshCmdOptDef opts_domfstrim[] = {
> .type = VSH_OT_DATA,
> .help = N_("which mount point to trim")
> },
> - {NULL, 0, 0, NULL}
> + {NULL, 0, 0, NULL, NULL, 0}
> };
These two ^^ has slipped my switch to C99 style initialization done a
while ago. In fact, if they were properly initialized in C99 these two
chunks wouldn't be here. I think you want to prepend a separate patch,
which will convert info_lxc_enter_namespace and opts_domfstrim into C99
style.
> static bool
> cmdDomFSTrim(vshControl *ctl, const vshCmd *cmd)
> diff --git a/tools/virsh.h b/tools/virsh.h
> index a407428..e07b546 100644
> --- a/tools/virsh.h
> +++ b/tools/virsh.h
> @@ -146,6 +146,9 @@ typedef struct _vshCmdOptDef vshCmdOptDef;
> typedef struct _vshControl vshControl;
> typedef struct _vshCtrlData vshCtrlData;
>
> +typedef char **(*vshCmdCompleter)(unsigned int flags);
> +typedef char **(*vshOptCompleter)(unsigned int flags);
> +
> /*
> * vshCmdInfo -- name/value pair for information about command
> *
> @@ -167,6 +170,8 @@ struct _vshCmdOptDef {
> unsigned int flags; /* flags */
> const char *help; /* non-NULL help string; or for VSH_OT_ALIAS
> * the name of a later public option */
> + vshOptCompleter completer; /* option completer */
> + unsigned int completer_flags; /* option completer flags */
> };
>
> /*
> @@ -198,6 +203,8 @@ struct _vshCmdDef {
> const vshCmdOptDef *opts; /* definition of command options */
> const vshCmdInfo *info; /* details about command */
> unsigned int flags; /* bitwise OR of VSH_CMD_FLAG */
> + vshCmdCompleter completer; /* command completer */
> + unsigned int completer_flags; /* command completer flags */
> };
>
> /*
>
The rest looks okay.
Michal
More information about the libvir-list
mailing list