From: Peter Krempa <pkre...@redhat.com> The helper methods as well as the empty completers can be useful also in other virt shells; extract the code and rename the functions appropriately.
Signed-off-by: Peter Krempa <pkre...@redhat.com> --- tools/meson.build | 2 +- tools/virsh-backup.c | 6 +- tools/virsh-checkpoint.c | 8 +- tools/virsh-completer-domain.c | 70 ++++++------- tools/virsh-completer-host.c | 12 +-- tools/virsh-completer-nodedev.c | 10 +- tools/virsh-completer-pool.c | 6 +- tools/virsh-completer-volume.c | 4 +- tools/virsh-completer.h | 19 +--- tools/virsh-domain.c | 100 +++++++++---------- tools/virsh-host.c | 6 +- tools/virsh-interface.c | 2 +- tools/virsh-network.c | 8 +- tools/virsh-nodedev.c | 2 +- tools/virsh-nwfilter.c | 4 +- tools/virsh-pool.c | 18 ++-- tools/virsh-secret.c | 6 +- tools/virsh-snapshot.c | 8 +- tools/virsh-volume.c | 12 +-- tools/virsh.c | 2 +- tools/virsh.h | 2 +- tools/{virsh-completer.c => vsh-completer.c} | 34 +++---- tools/vsh-completer.h | 41 ++++++++ 23 files changed, 203 insertions(+), 179 deletions(-) rename tools/{virsh-completer.c => vsh-completer.c} (85%) create mode 100644 tools/vsh-completer.h diff --git a/tools/meson.build b/tools/meson.build index 4d5c9e4bba..a099148d3c 100644 --- a/tools/meson.build +++ b/tools/meson.build @@ -25,6 +25,7 @@ libvirt_shell_lib = static_library( [ 'vsh.c', 'vsh-table.c', + 'vsh-completer.c', ], dependencies: [ tools_dep, @@ -169,7 +170,6 @@ virsh_prog = executable( 'virsh.c', 'virsh-backup.c', 'virsh-checkpoint.c', - 'virsh-completer.c', 'virsh-completer-domain.c', 'virsh-completer-checkpoint.c', 'virsh-completer-host.c', diff --git a/tools/virsh-backup.c b/tools/virsh-backup.c index 27777eea74..39e62f9ba9 100644 --- a/tools/virsh-backup.c +++ b/tools/virsh-backup.c @@ -35,13 +35,13 @@ static const vshCmdOptDef opts_backup_begin[] = { {.name = "backupxml", .type = VSH_OT_STRING, .positional = true, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("domain backup XML"), }, {.name = "checkpointxml", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("domain checkpoint XML"), }, {.name = "reuse-external", @@ -109,7 +109,7 @@ static const vshCmdOptDef opts_backup_dumpxml[] = { VIRSH_COMMON_OPT_DOMAIN_FULL(VIR_CONNECT_LIST_DOMAINS_ACTIVE), {.name = "xpath", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("xpath expression to filter the XML document") }, {.name = "wrap", diff --git a/tools/virsh-checkpoint.c b/tools/virsh-checkpoint.c index a0ac0d7f71..1a168a1c38 100644 --- a/tools/virsh-checkpoint.c +++ b/tools/virsh-checkpoint.c @@ -82,7 +82,7 @@ static const vshCmdOptDef opts_checkpoint_create[] = { {.name = "xmlfile", .type = VSH_OT_STRING, .positional = true, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("domain checkpoint XML") }, {.name = "redefine", @@ -190,13 +190,13 @@ static const vshCmdOptDef opts_checkpoint_create_as[] = { {.name = "name", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("name of checkpoint") }, {.name = "description", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("description of checkpoint") }, {.name = "print-xml", @@ -837,7 +837,7 @@ static const vshCmdOptDef opts_checkpoint_dumpxml[] = { }, {.name = "xpath", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("xpath expression to filter the XML document") }, {.name = "wrap", diff --git a/tools/virsh-completer-domain.c b/tools/virsh-completer-domain.c index 3a165bc4a5..912826c434 100644 --- a/tools/virsh-completer-domain.c +++ b/tools/virsh-completer-domain.c @@ -235,7 +235,7 @@ virshDomainDiskTargetListCompleter(vshControl *ctl, if (!targets) return NULL; - return virshCommaStringListComplete(curval, (const char **) targets); + return vshCommaStringListComplete(curval, (const char **) targets); } @@ -307,7 +307,7 @@ virshDomainThrottleGroupsCompleter(vshControl *ctl, if (!groups) return NULL; - return virshCommaStringListComplete(curval, (const char **) groups); + return vshCommaStringListComplete(curval, (const char **) groups); } @@ -529,7 +529,7 @@ virshDomainShutdownModeCompleter(vshControl *ctl, if (vshCommandOptStringQuiet(ctl, cmd, "mode", &mode) < 0) return NULL; - return virshCommaStringListComplete(mode, modes); + return vshCommaStringListComplete(mode, modes); } @@ -540,8 +540,8 @@ virshDomainInterfaceAddrSourceCompleter(vshControl *ctl G_GNUC_UNUSED, { virCheckFlags(0, NULL); - return virshEnumComplete(VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LAST, - virshDomainInterfaceAddressesSourceTypeToString); + return vshEnumComplete(VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LAST, + virshDomainInterfaceAddressesSourceTypeToString); } @@ -552,8 +552,8 @@ virshDomainInterfaceSourceModeCompleter(vshControl *ctl G_GNUC_UNUSED, { virCheckFlags(0, NULL); - return virshEnumComplete(VIRSH_DOMAIN_INTERFACE_SOURCE_MODE_LAST, - virshDomainInterfaceSourceModeTypeToString); + return vshEnumComplete(VIRSH_DOMAIN_INTERFACE_SOURCE_MODE_LAST, + virshDomainInterfaceSourceModeTypeToString); } @@ -564,8 +564,8 @@ virshDomainHostnameSourceCompleter(vshControl *ctl G_GNUC_UNUSED, { virCheckFlags(0, NULL); - return virshEnumComplete(VIRSH_DOMAIN_HOSTNAME_SOURCE_LAST, - virshDomainHostnameSourceTypeToString); + return vshEnumComplete(VIRSH_DOMAIN_HOSTNAME_SOURCE_LAST, + virshDomainHostnameSourceTypeToString); } @@ -582,10 +582,10 @@ virshDomainPerfEnableCompleter(vshControl *ctl, if (vshCommandOptStringQuiet(ctl, cmd, "enable", &event) < 0) return NULL; - events = virshEnumComplete(VIR_PERF_EVENT_LAST, - virPerfEventTypeToString); + events = vshEnumComplete(VIR_PERF_EVENT_LAST, + virPerfEventTypeToString); - return virshCommaStringListComplete(event, (const char **)events); + return vshCommaStringListComplete(event, (const char **)events); } @@ -602,10 +602,10 @@ virshDomainPerfDisableCompleter(vshControl *ctl, if (vshCommandOptStringQuiet(ctl, cmd, "disable", &event) < 0) return NULL; - events = virshEnumComplete(VIR_PERF_EVENT_LAST, - virPerfEventTypeToString); + events = vshEnumComplete(VIR_PERF_EVENT_LAST, + virPerfEventTypeToString); - return virshCommaStringListComplete(event, (const char **)events); + return vshCommaStringListComplete(event, (const char **)events); } @@ -708,7 +708,7 @@ virshDomainVcpulistCompleter(vshControl *ctl, for (id = 0; id < nvcpus; id++) vcpulist[id] = g_strdup_printf("%u", id); - return virshCommaStringListComplete(vcpuid, (const char **)vcpulist); + return vshCommaStringListComplete(vcpuid, (const char **)vcpulist); } @@ -738,7 +738,7 @@ virshDomainCpulistCompleter(vshControl *ctl, for (i = 0; i < cpunum; i++) cpulist[i] = g_strdup_printf("%zu", i); - return virshCommaStringListComplete(cpuid, (const char **)cpulist); + return vshCommaStringListComplete(cpuid, (const char **)cpulist); } @@ -837,7 +837,7 @@ virshDomainVcpulistViaAgentCompleter(vshControl *ctl, } } - ret = virshCommaStringListComplete(vcpuid, (const char **)cpulist); + ret = vshCommaStringListComplete(vcpuid, (const char **)cpulist); cleanup: virTypedParamsFree(params, nparams); @@ -906,8 +906,8 @@ virshDomainSignalCompleter(vshControl *ctl G_GNUC_UNUSED, { virCheckFlags(0, NULL); - return virshEnumComplete(VIR_DOMAIN_PROCESS_SIGNAL_LAST, - virshDomainProcessSignalTypeToString); + return vshEnumComplete(VIR_DOMAIN_PROCESS_SIGNAL_LAST, + virshDomainProcessSignalTypeToString); } @@ -918,8 +918,8 @@ virshDomainLifecycleCompleter(vshControl *ctl G_GNUC_UNUSED, { virCheckFlags(0, NULL); - return virshEnumComplete(VIR_DOMAIN_LIFECYCLE_LAST, - virshDomainLifecycleTypeToString); + return vshEnumComplete(VIR_DOMAIN_LIFECYCLE_LAST, + virshDomainLifecycleTypeToString); } @@ -930,8 +930,8 @@ virshDomainLifecycleActionCompleter(vshControl *ctl G_GNUC_UNUSED, { virCheckFlags(0, NULL); - return virshEnumComplete(VIR_DOMAIN_LIFECYCLE_ACTION_LAST, - virshDomainLifecycleActionTypeToString); + return vshEnumComplete(VIR_DOMAIN_LIFECYCLE_ACTION_LAST, + virshDomainLifecycleActionTypeToString); } @@ -942,8 +942,8 @@ virshCodesetNameCompleter(vshControl *ctl G_GNUC_UNUSED, { virCheckFlags(0, NULL); - return virshEnumComplete(VIR_KEYCODE_SET_LAST, - virKeycodeSetTypeToString); + return vshEnumComplete(VIR_KEYCODE_SET_LAST, + virKeycodeSetTypeToString); } @@ -1063,8 +1063,8 @@ virshDomainCoreDumpFormatCompleter(vshControl *ctl G_GNUC_UNUSED, { virCheckFlags(0, NULL); - return virshEnumComplete(VIR_DOMAIN_CORE_DUMP_FORMAT_LAST, - virshDomainCoreDumpFormatTypeToString); + return vshEnumComplete(VIR_DOMAIN_CORE_DUMP_FORMAT_LAST, + virshDomainCoreDumpFormatTypeToString); } @@ -1081,7 +1081,7 @@ virshDomainMigrateCompMethodsCompleter(vshControl *ctl, if (vshCommandOptStringQuiet(ctl, cmd, "comp-methods", &method) < 0) return NULL; - return virshCommaStringListComplete(method, methods); + return vshCommaStringListComplete(method, methods); } @@ -1092,8 +1092,8 @@ virshDomainStorageFileFormatCompleter(vshControl *ctl G_GNUC_UNUSED, { virCheckFlags(0, NULL); - return virshEnumComplete(VIR_STORAGE_FILE_LAST, - virStorageFileFormatTypeToString); + return vshEnumComplete(VIR_STORAGE_FILE_LAST, + virStorageFileFormatTypeToString); } @@ -1104,8 +1104,8 @@ virshDomainNumatuneModeCompleter(vshControl *ctl G_GNUC_UNUSED, { virCheckFlags(0, NULL); - return virshEnumComplete(VIR_DOMAIN_NUMATUNE_MEM_LAST, - virDomainNumatuneMemModeTypeToString); + return vshEnumComplete(VIR_DOMAIN_NUMATUNE_MEM_LAST, + virDomainNumatuneMemModeTypeToString); } @@ -1116,6 +1116,6 @@ virshDomainDirtyRateCalcModeCompleter(vshControl *ctl G_GNUC_UNUSED, { virCheckFlags(0, NULL); - return virshEnumComplete(VIRSH_DOMAIN_DIRTYRATE_CALC_MODE_LAST, - virshDomainDirtyRateCalcModeTypeToString); + return vshEnumComplete(VIRSH_DOMAIN_DIRTYRATE_CALC_MODE_LAST, + virshDomainDirtyRateCalcModeTypeToString); } diff --git a/tools/virsh-completer-host.c b/tools/virsh-completer-host.c index 78d2236f97..c3919a6d91 100644 --- a/tools/virsh-completer-host.c +++ b/tools/virsh-completer-host.c @@ -178,8 +178,8 @@ virshNodeSuspendTargetCompleter(vshControl *ctl G_GNUC_UNUSED, { virCheckFlags(0, NULL); - return virshEnumComplete(VIR_NODE_SUSPEND_TARGET_LAST, - virshNodeSuspendTargetTypeToString); + return vshEnumComplete(VIR_NODE_SUSPEND_TARGET_LAST, + virshNodeSuspendTargetTypeToString); } @@ -190,8 +190,8 @@ virshDomainVirtTypeCompleter(vshControl *ctl G_GNUC_UNUSED, { virCheckFlags(0, NULL); - return virshEnumComplete(VIR_DOMAIN_VIRT_LAST, - virDomainVirtTypeToString); + return vshEnumComplete(VIR_DOMAIN_VIRT_LAST, + virDomainVirtTypeToString); } @@ -202,8 +202,8 @@ virshArchCompleter(vshControl *ctl G_GNUC_UNUSED, { virCheckFlags(0, NULL); - return virshEnumComplete(VIR_ARCH_LAST, - (const char *(*)(int))virArchToString); + return vshEnumComplete(VIR_ARCH_LAST, + (const char *(*)(int))virArchToString); } diff --git a/tools/virsh-completer-nodedev.c b/tools/virsh-completer-nodedev.c index 72951a54f6..289f803904 100644 --- a/tools/virsh-completer-nodedev.c +++ b/tools/virsh-completer-nodedev.c @@ -96,10 +96,10 @@ virshNodeDeviceCapabilityNameCompleter(vshControl *ctl, if (vshCommandOptStringQuiet(ctl, cmd, "cap", &cap_str) < 0) return NULL; - tmp = virshEnumComplete(VIR_NODE_DEV_CAP_LAST, - virNodeDevCapTypeToString); + tmp = vshEnumComplete(VIR_NODE_DEV_CAP_LAST, + virNodeDevCapTypeToString); - return virshCommaStringListComplete(cap_str, (const char **)tmp); + return vshCommaStringListComplete(cap_str, (const char **)tmp); } @@ -110,6 +110,6 @@ virshNodeDevicePCIBackendCompleter(vshControl *ctl G_GNUC_UNUSED, { virCheckFlags(0, NULL); - return virshEnumComplete(VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_LAST, - virDeviceHostdevPCIDriverNameTypeToString); + return vshEnumComplete(VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_LAST, + virDeviceHostdevPCIDriverNameTypeToString); } diff --git a/tools/virsh-completer-pool.c b/tools/virsh-completer-pool.c index 3568bb985b..6701436c0f 100644 --- a/tools/virsh-completer-pool.c +++ b/tools/virsh-completer-pool.c @@ -95,8 +95,8 @@ virshPoolTypeCompleter(vshControl *ctl, virCheckFlags(VIRSH_POOL_TYPE_COMPLETER_COMMA, NULL); - tmp = virshEnumComplete(VIR_STORAGE_POOL_LAST, - virStoragePoolTypeToString); + tmp = vshEnumComplete(VIR_STORAGE_POOL_LAST, + virStoragePoolTypeToString); if (!(flags & VIRSH_POOL_TYPE_COMPLETER_COMMA)) return g_steal_pointer(&tmp); @@ -104,5 +104,5 @@ virshPoolTypeCompleter(vshControl *ctl, if (vshCommandOptStringQuiet(ctl, cmd, "type", &type_str) < 0) return NULL; - return virshCommaStringListComplete(type_str, (const char **)tmp); + return vshCommaStringListComplete(type_str, (const char **)tmp); } diff --git a/tools/virsh-completer-volume.c b/tools/virsh-completer-volume.c index 9a80112e59..5ad2e28318 100644 --- a/tools/virsh-completer-volume.c +++ b/tools/virsh-completer-volume.c @@ -123,6 +123,6 @@ virshStorageVolWipeAlgorithmCompleter(vshControl *ctl G_GNUC_UNUSED, { virCheckFlags(0, NULL); - return virshEnumComplete(VIR_STORAGE_VOL_WIPE_ALG_LAST, - virshStorageVolWipeAlgorithmTypeToString); + return vshEnumComplete(VIR_STORAGE_VOL_WIPE_ALG_LAST, + virshStorageVolWipeAlgorithmTypeToString); } diff --git a/tools/virsh-completer.h b/tools/virsh-completer.h index 131678dfbc..2ddd5446cd 100644 --- a/tools/virsh-completer.h +++ b/tools/virsh-completer.h @@ -20,6 +20,7 @@ #pragma once +#include "vsh-completer.h" #include "virsh-completer-checkpoint.h" #include "virsh-completer-domain.h" #include "virsh-completer-host.h" @@ -31,21 +32,3 @@ #include "virsh-completer-secret.h" #include "virsh-completer-snapshot.h" #include "virsh-completer-volume.h" - -char ** -virshEnumComplete(unsigned int last, - const char *(*intToStr)(int)); - -char ** -virshCommaStringListComplete(const char *input, - const char **options); - -char ** -virshCompletePathLocalExisting(vshControl *ctl, - const vshCmd *cmd, - unsigned int completerflags); - -char ** -virshCompleteEmpty(vshControl *ctl, - const vshCmd *cmd, - unsigned int completerflags); diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index a5f87243a2..7e5e83126e 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -429,7 +429,7 @@ static const vshCmdOptDef opts_attach_disk[] = { .type = VSH_OT_STRING, .positional = true, .required = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("target of disk device") }, {.name = "targetbus", @@ -475,17 +475,17 @@ static const vshCmdOptDef opts_attach_disk[] = { }, {.name = "serial", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("serial of disk device") }, {.name = "wwn", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("wwn of disk device") }, {.name = "alias", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("custom alias name of disk device") }, {.name = "rawio", @@ -494,7 +494,7 @@ static const vshCmdOptDef opts_attach_disk[] = { }, {.name = "address", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("address of disk device") }, {.name = "multifunction", @@ -511,7 +511,7 @@ static const vshCmdOptDef opts_attach_disk[] = { }, {.name = "source-host-name", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("host name for source of disk device") }, {.name = "source-host-transport", @@ -847,13 +847,13 @@ static const vshCmdOptDef opts_attach_interface[] = { {.name = "target", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("target network name") }, {.name = "mac", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("MAC address") }, {.name = "script", @@ -869,19 +869,19 @@ static const vshCmdOptDef opts_attach_interface[] = { {.name = "alias", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("custom alias name of interface device") }, {.name = "inbound", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("control domain's incoming traffics") }, {.name = "outbound", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("control domain's outgoing traffics") }, VIRSH_COMMON_OPT_DOMAIN_PERSISTENT, @@ -1405,7 +1405,7 @@ static const vshCmdOptDef opts_blkdeviotune[] = { }, {.name = "group-name", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("group name to share I/O quota between multiple drives") }, VSH_OPTS_IOTUNE, @@ -1912,31 +1912,31 @@ static const vshCmdOptDef opts_blkiotune[] = { {.name = "device-weights", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("per-device IO Weights, in the form of /path/to/device,weight,...") }, {.name = "device-read-iops-sec", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("per-device read I/O limit per second, in the form of /path/to/device,read_iops_sec,...") }, {.name = "device-write-iops-sec", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("per-device write I/O limit per second, in the form of /path/to/device,write_iops_sec,...") }, {.name = "device-read-bytes-sec", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("per-device bytes read per second, in the form of /path/to/device,read_bytes_sec,...") }, {.name = "device-write-bytes-sec", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("per-device bytes wrote per second, in the form of /path/to/device,write_bytes_sec,...") }, VIRSH_COMMON_OPT_DOMAIN_CONFIG, @@ -2669,7 +2669,7 @@ static const vshCmdOptDef opts_blockcopy[] = { {.name = "xml", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("filename containing XML description of the copy destination") }, {.name = "format", @@ -3617,13 +3617,13 @@ static const vshCmdOptDef opts_domiftune[] = { {.name = "inbound", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("control domain's incoming traffics") }, {.name = "outbound", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("control domain's outgoing traffics") }, VIRSH_COMMON_OPT_DOMAIN_CONFIG, @@ -4386,7 +4386,7 @@ static const vshCmdOptDef opts_start[] = { {.name = "pass-fds", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("pass file descriptors N,M,... to the guest") }, {.name = "reset-nvram", @@ -4541,7 +4541,7 @@ static const vshCmdOptDef opts_save[] = { {.name = "xml", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("filename containing updated XML for the target") }, {.name = "running", @@ -4939,7 +4939,7 @@ static const vshCmdOptDef opts_save_image_dumpxml[] = { }, {.name = "xpath", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("xpath expression to filter the XML document") }, {.name = "wrap", @@ -4994,7 +4994,7 @@ static const vshCmdOptDef opts_save_image_define[] = { .type = VSH_OT_STRING, .positional = true, .required = true, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("filename containing updated XML for the target") }, {.name = "running", @@ -5344,7 +5344,7 @@ static const vshCmdOptDef opts_managed_save_dumpxml[] = { }, {.name = "xpath", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("xpath expression to filter the XML document") }, {.name = "wrap", @@ -5392,7 +5392,7 @@ static const vshCmdOptDef opts_managed_save_define[] = { .type = VSH_OT_STRING, .positional = true, .required = true, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("filename containing updated XML for the target") }, {.name = "running", @@ -5680,7 +5680,7 @@ static const vshCmdOptDef opts_restore[] = { {.name = "xml", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("filename containing updated XML for the target") }, {.name = "running", @@ -5949,7 +5949,7 @@ static const vshCmdOptDef opts_screenshot[] = { {.name = "file", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("where to store the screenshot") }, {.name = "screen", @@ -6181,7 +6181,7 @@ static const vshCmdOptDef opts_set_user_password[] = { .type = VSH_OT_STRING, .positional = true, .required = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("the new password") }, {.name = "encrypted", @@ -8476,7 +8476,7 @@ static const vshCmdOptDef opts_create[] = { {.name = "pass-fds", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("pass file descriptors N,M,... to the guest") }, {.name = "validate", @@ -8833,7 +8833,7 @@ static const vshCmdOptDef opts_metadata[] = { {.name = "set", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("new metadata to set"), }, {.name = "remove", @@ -9086,7 +9086,7 @@ static const vshCmdOptDef opts_send_process_signal[] = { .type = VSH_OT_STRING, .positional = true, .required = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("the process ID") }, {.name = "signame", @@ -10036,14 +10036,14 @@ static const vshCmdOptDef opts_dom_fd_associate[] = { .type = VSH_OT_STRING, .positional = true, .required = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("name of the FD group") }, {.name = "pass-fds", .type = VSH_OT_STRING, .positional = true, .required = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("file descriptors N,M,... to associate") }, {.name = "seclabel-writable", @@ -10112,7 +10112,7 @@ static const vshCmdOptDef opts_qemu_monitor_command[] = { }, {.name = "pass-fds", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("pass file descriptors N,M,... along with the command") }, {.name = "cmd", @@ -10446,7 +10446,7 @@ static const vshCmdOptDef opts_qemu_attach[] = { .type = VSH_OT_STRING, .positional = true, .required = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("pid") }, {.name = NULL} @@ -10705,7 +10705,7 @@ static const vshCmdOptDef opts_dumpxml[] = { }, {.name = "xpath", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("xpath expression to filter the XML document") }, {.name = "wrap", @@ -10768,7 +10768,7 @@ static const vshCmdOptDef opts_domxmlfromnative[] = { .type = VSH_OT_STRING, .positional = true, .required = true, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("config data file to import from") }, {.name = NULL} @@ -10822,7 +10822,7 @@ static const vshCmdOptDef opts_domxmltonative[] = { {.name = "xml", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("xml data file to export from") }, {.name = NULL} @@ -10919,7 +10919,7 @@ static const vshCmdOptDef opts_domrename[] = { .type = VSH_OT_STRING, .positional = true, .required = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("new domain name") }, {.name = NULL} @@ -11022,7 +11022,7 @@ static const vshCmdOptDef opts_migrate[] = { .type = VSH_OT_STRING, .positional = true, .required = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("connection URI of the destination host as seen from the client(normal migration) or source(p2p migration)") }, VIRSH_COMMON_OPT_LIVE(N_("live migration")), @@ -11117,25 +11117,25 @@ static const vshCmdOptDef opts_migrate[] = { {.name = "migrateuri", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("migration URI, usually can be omitted") }, {.name = "graphicsuri", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("graphics URI to be used for seamless graphics migration") }, {.name = "listen-address", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("listen address that destination should bind to for incoming migration") }, {.name = "dname", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("rename to new name during migration (if supported)") }, {.name = "timeout", @@ -11155,7 +11155,7 @@ static const vshCmdOptDef opts_migrate[] = { {.name = "xml", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("filename containing updated XML for the target") }, {.name = "migrate-disks", @@ -11176,7 +11176,7 @@ static const vshCmdOptDef opts_migrate[] = { }, {.name = "disks-uri", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("URI to use for disks migration (overrides --disks-port)") }, {.name = "comp-methods", @@ -11210,7 +11210,7 @@ static const vshCmdOptDef opts_migrate[] = { }, {.name = "persistent-xml", .type = VSH_OT_STRING, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("filename containing updated persistent XML for the target") }, {.name = "tls", @@ -11235,7 +11235,7 @@ static const vshCmdOptDef opts_migrate[] = { }, {.name = "tls-destination", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("override the destination host name used for TLS verification") }, {.name = "comp-zlib-level", @@ -13673,7 +13673,7 @@ static const vshCmdOptDef opts_set_user_sshkeys[] = { {.name = "file", .type = VSH_OT_STRING, .positional = true, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("optional file to read keys from"), }, {.name = "reset", diff --git a/tools/virsh-host.c b/tools/virsh-host.c index 7a4c2b20d5..16f9411730 100644 --- a/tools/virsh-host.c +++ b/tools/virsh-host.c @@ -45,7 +45,7 @@ static const vshCmdInfo info_capabilities = { static const vshCmdOptDef opts_capabilities[] = { {.name = "xpath", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("xpath expression to filter the XML document") }, {.name = "wrap", @@ -107,7 +107,7 @@ static const vshCmdOptDef opts_domcapabilities[] = { }, {.name = "xpath", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("xpath expression to filter the XML document") }, {.name = "wrap", @@ -1667,7 +1667,7 @@ static const vshCmdOptDef opts_hypervisor_cpu_baseline[] = { {.name = "file", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("file containing XML CPU descriptions"), }, {.name = "virttype", diff --git a/tools/virsh-interface.c b/tools/virsh-interface.c index 7e3103adf1..624d3283a2 100644 --- a/tools/virsh-interface.c +++ b/tools/virsh-interface.c @@ -453,7 +453,7 @@ static const vshCmdOptDef opts_interface_dumpxml[] = { }, {.name = "xpath", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("xpath expression to filter the XML document") }, {.name = "wrap", diff --git a/tools/virsh-network.c b/tools/virsh-network.c index 5382070031..3fd22db2b0 100644 --- a/tools/virsh-network.c +++ b/tools/virsh-network.c @@ -506,7 +506,7 @@ static const vshCmdOptDef opts_network_metadata[] = { {.name = "set", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("new metadata to set"), }, {.name = "remove", @@ -638,7 +638,7 @@ static const vshCmdOptDef opts_network_dumpxml[] = { }, {.name = "xpath", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("xpath expression to filter the XML document") }, {.name = "wrap", @@ -1234,7 +1234,7 @@ static const vshCmdOptDef opts_network_update[] = { .type = VSH_OT_STRING, .positional = true, .required = true, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("name of file containing xml (or, if it starts with '<', the complete " "xml element itself) to add/modify, or to be matched for search") }, @@ -1871,7 +1871,7 @@ static const vshCmdOptDef opts_network_port_dumpxml[] = { VIRSH_COMMON_OPT_NETWORK_PORT(0), {.name = "xpath", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("xpath expression to filter the XML document") }, {.name = "wrap", diff --git a/tools/virsh-nodedev.c b/tools/virsh-nodedev.c index 7ae6127513..2ce0c1411f 100644 --- a/tools/virsh-nodedev.c +++ b/tools/virsh-nodedev.c @@ -590,7 +590,7 @@ static const vshCmdOptDef opts_node_device_dumpxml[] = { }, {.name = "xpath", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("xpath expression to filter the XML document") }, {.name = "wrap", diff --git a/tools/virsh-nwfilter.c b/tools/virsh-nwfilter.c index 3745abb67e..0348584f23 100644 --- a/tools/virsh-nwfilter.c +++ b/tools/virsh-nwfilter.c @@ -175,7 +175,7 @@ static const vshCmdOptDef opts_nwfilter_dumpxml[] = { }, {.name = "xpath", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("xpath expression to filter the XML document") }, {.name = "wrap", @@ -576,7 +576,7 @@ static const vshCmdOptDef opts_nwfilter_binding_dumpxml[] = { }, {.name = "xpath", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("xpath expression to filter the XML document") }, {.name = "wrap", diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c index 089fde55e2..2010ef1356 100644 --- a/tools/virsh-pool.c +++ b/tools/virsh-pool.c @@ -57,7 +57,7 @@ .type = VSH_OT_STRING, \ .positional = true, \ .required = true, \ - .completer = virshCompleteEmpty, \ + .completer = vshCompleteEmpty, \ .help = N_("name of the pool") \ }, \ {.name = "type", \ @@ -74,7 +74,7 @@ {.name = "source-host", \ .type = VSH_OT_STRING, \ .unwanted_positional = true, \ - .completer = virshCompleteEmpty, \ + .completer = vshCompleteEmpty, \ .help = N_("source-host for underlying storage") \ }, \ {.name = "source-path", \ @@ -110,7 +110,7 @@ {.name = "auth-username", \ .type = VSH_OT_STRING, \ .unwanted_positional = true, \ - .completer = virshCompleteEmpty, \ + .completer = vshCompleteEmpty, \ .help = N_("auth username to be used for underlying storage") \ }, \ {.name = "secret-usage", \ @@ -166,7 +166,7 @@ {.name = "source-initiator", \ .type = VSH_OT_STRING, \ .unwanted_positional = true, \ - .completer = virshCompleteEmpty, \ + .completer = vshCompleteEmpty, \ .help = N_("initiator iqn for underlying storage") \ } @@ -745,7 +745,7 @@ static const vshCmdOptDef opts_pool_dumpxml[] = { }, {.name = "xpath", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("xpath expression to filter the XML document") }, {.name = "wrap", @@ -1375,19 +1375,19 @@ static const vshCmdOptDef opts_find_storage_pool_sources_as[] = { {.name = "host", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("optional host to query") }, {.name = "port", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("optional port to query") }, {.name = "initiator", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("optional initiator IQN to use for query") }, {.name = NULL} @@ -1462,7 +1462,7 @@ static const vshCmdOptDef opts_find_storage_pool_sources[] = { {.name = "srcSpec", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("optional file of source xml to query for pools") }, {.name = NULL} diff --git a/tools/virsh-secret.c b/tools/virsh-secret.c index 68b14a5276..26ecb41073 100644 --- a/tools/virsh-secret.c +++ b/tools/virsh-secret.c @@ -131,7 +131,7 @@ static const vshCmdOptDef opts_secret_dumpxml[] = { }, {.name = "xpath", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("xpath expression to filter the XML document") }, {.name = "wrap", @@ -186,7 +186,7 @@ static const vshCmdOptDef opts_secret_set_value[] = { }, {.name = "file", .type = VSH_OT_STRING, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("read secret from file"), }, {.name = "plain", @@ -200,7 +200,7 @@ static const vshCmdOptDef opts_secret_set_value[] = { {.name = "base64", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("base64-encoded secret value") }, {.name = NULL} diff --git a/tools/virsh-snapshot.c b/tools/virsh-snapshot.c index dbd849bb3b..8e5b9d635c 100644 --- a/tools/virsh-snapshot.c +++ b/tools/virsh-snapshot.c @@ -110,7 +110,7 @@ static const vshCmdOptDef opts_snapshot_create[] = { {.name = "xmlfile", .type = VSH_OT_STRING, .positional = true, - .completer = virshCompletePathLocalExisting, + .completer = vshCompletePathLocalExisting, .help = N_("domain snapshot XML") }, {.name = "redefine", @@ -315,13 +315,13 @@ static const vshCmdOptDef opts_snapshot_create_as[] = { {.name = "name", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("name of snapshot") }, {.name = "description", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("description of snapshot") }, {.name = "print-xml", @@ -1593,7 +1593,7 @@ static const vshCmdOptDef opts_snapshot_dumpxml[] = { }, {.name = "xpath", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("xpath expression to filter the XML document") }, {.name = "wrap", diff --git a/tools/virsh-volume.c b/tools/virsh-volume.c index 7b1847d7ae..7346d628d5 100644 --- a/tools/virsh-volume.c +++ b/tools/virsh-volume.c @@ -178,20 +178,20 @@ static const vshCmdOptDef opts_vol_create_as[] = { .type = VSH_OT_STRING, .positional = true, .required = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("name of the volume") }, {.name = "capacity", .type = VSH_OT_STRING, .positional = true, .required = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("size of the vol, as scaled integer (default bytes)") }, {.name = "allocation", .type = VSH_OT_STRING, .unwanted_positional = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("initial allocation size, as scaled integer (default bytes)") }, {.name = "format", @@ -531,7 +531,7 @@ static const vshCmdOptDef opts_vol_clone[] = { .type = VSH_OT_STRING, .positional = true, .required = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("clone name") }, VIRSH_COMMON_OPT_POOL_OPTIONAL, @@ -1041,7 +1041,7 @@ static const vshCmdOptDef opts_vol_resize[] = { .type = VSH_OT_STRING, .positional = true, .required = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("new capacity for the vol, as scaled integer (default bytes)") }, VIRSH_COMMON_OPT_POOL_OPTIONAL, @@ -1129,7 +1129,7 @@ static const vshCmdOptDef opts_vol_dumpxml[] = { VIRSH_COMMON_OPT_POOL_OPTIONAL, {.name = "xpath", .type = VSH_OT_STRING, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("xpath expression to filter the XML document") }, {.name = "wrap", diff --git a/tools/virsh.c b/tools/virsh.c index c893216637..244ca655ee 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -248,7 +248,7 @@ static const vshCmdOptDef opts_connect[] = { .type = VSH_OT_STRING, .positional = true, .allowEmpty = true, - .completer = virshCompleteEmpty, + .completer = vshCompleteEmpty, .help = N_("hypervisor connection URI") }, {.name = "readonly", diff --git a/tools/virsh.h b/tools/virsh.h index 90ffc4bf18..0e4c368c9b 100644 --- a/tools/virsh.h +++ b/tools/virsh.h @@ -102,7 +102,7 @@ .type = VSH_OT_STRING, \ .required = true, \ .positional = true, \ - .completer = virshCompletePathLocalExisting, \ + .completer = vshCompletePathLocalExisting, \ .help = _helpstr \ } diff --git a/tools/virsh-completer.c b/tools/vsh-completer.c similarity index 85% rename from tools/virsh-completer.c rename to tools/vsh-completer.c index d4defba86e..8f0376879c 100644 --- a/tools/virsh-completer.c +++ b/tools/vsh-completer.c @@ -1,5 +1,5 @@ /* - * virsh-completer.c: virsh completer callbacks + * vsh-completer.c: virsh completer callbacks * * Copyright (C) 2017 Red Hat, Inc. * @@ -20,7 +20,7 @@ #include <config.h> -#include "virsh-completer.h" +#include "vsh-completer.h" /** * A completer callback is a function that accepts three arguments: @@ -56,7 +56,7 @@ /** - * virshEnumComplete: + * vshEnumComplete: * @last: The number of element in enum (pass VIR_XXX_LAST) * @intToStr: integer to string conversion (pass virXXXTypeToString) * @@ -67,8 +67,8 @@ * Returns: string list of completions. */ char ** -virshEnumComplete(unsigned int last, - const char *(*intToStr)(int)) +vshEnumComplete(unsigned int last, + const char *(*intToStr)(int)) { char **ret = NULL; size_t i; @@ -83,7 +83,7 @@ virshEnumComplete(unsigned int last, /** - * virshCommaStringListComplete: + * vshCommaStringListComplete: * @input: user input so far * @options: ALL options available for argument * @@ -102,15 +102,15 @@ virshEnumComplete(unsigned int last, * This helper function takes care of that. In this specific case * it would be called as follows: * - * virshCommaStringListComplete("str1,str2,str3", + * vshCommaStringListComplete("str1,str2,str3", * {"strA", "strB", "strC", NULL}); * * Returns: string list of completions on success, * NULL otherwise. */ char ** -virshCommaStringListComplete(const char *input, - const char **options) +vshCommaStringListComplete(const char *input, + const char **options) { const size_t optionsLen = g_strv_length((char **) options); g_autofree char *inputCopy = NULL; @@ -156,7 +156,7 @@ virshCommaStringListComplete(const char *input, /** - * virshCompletePathLocalExisting: + * vshCompletePathLocalExisting: * * Complete a path to a existing file used as input. The file is used as input * for virsh so only local files are considered. @@ -164,16 +164,16 @@ virshCommaStringListComplete(const char *input, * Note: For now this is a no-op. Readline does the correct thing. */ char ** -virshCompletePathLocalExisting(vshControl *ctl G_GNUC_UNUSED, - const vshCmd *cmd G_GNUC_UNUSED, - unsigned int completerflags G_GNUC_UNUSED) +vshCompletePathLocalExisting(vshControl *ctl G_GNUC_UNUSED, + const vshCmd *cmd G_GNUC_UNUSED, + unsigned int completerflags G_GNUC_UNUSED) { return NULL; } /** - * virshCompleteEmpty: + * vshCompleteEmpty: * * Complete nothing. For cases where an user input is required and we can't * suggest anything. @@ -182,9 +182,9 @@ virshCompletePathLocalExisting(vshControl *ctl G_GNUC_UNUSED, * file list. */ char ** -virshCompleteEmpty(vshControl *ctl G_GNUC_UNUSED, - const vshCmd *cmd G_GNUC_UNUSED, - unsigned int completerflags G_GNUC_UNUSED) +vshCompleteEmpty(vshControl *ctl G_GNUC_UNUSED, + const vshCmd *cmd G_GNUC_UNUSED, + unsigned int completerflags G_GNUC_UNUSED) { return NULL; } diff --git a/tools/vsh-completer.h b/tools/vsh-completer.h new file mode 100644 index 0000000000..b479156062 --- /dev/null +++ b/tools/vsh-completer.h @@ -0,0 +1,41 @@ +/* + * vsh-completer.h: common virt shell completer callbacks + * + * Copyright (C) 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include "vsh.h" + +char ** +vshEnumComplete(unsigned int last, + const char *(*intToStr)(int)); + +char ** +vshCommaStringListComplete(const char *input, + const char **options); + +char ** +vshCompletePathLocalExisting(vshControl *ctl, + const vshCmd *cmd, + unsigned int completerflags); + +char ** +vshCompleteEmpty(vshControl *ctl, + const vshCmd *cmd, + unsigned int completerflags); -- 2.49.0