[libvirt] [PATCH 1/8] virsh: Add vshCmdCompleter and vshOptCompleter

Tomas Meszaros exo at tty.sk
Thu Aug 8 14:38:44 UTC 2013


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}
 };
 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 */
 };
 
 /*
-- 
1.8.3.1




More information about the libvir-list mailing list