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