summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiří Klimeš <jklimes@redhat.com>2015-03-12 14:37:47 +0100
committerJiří Klimeš <jklimes@redhat.com>2015-03-12 15:32:40 +0100
commitf8366c8b1c025f4b2161ff075474fd3b9ad0abd7 (patch)
treeb53af753107136d42c2cde74098e9acb59a814fd
parent661ef3cd46f0d68018d2556ab4c24bf1824919d5 (diff)
downloadNetworkManager-f8366c8b1c025f4b2161ff075474fd3b9ad0abd7.tar.gz
cli: fix TAB completion for multiple connections in 'nmcli con down/delete'
-rw-r--r--clients/cli/connections.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/clients/cli/connections.c b/clients/cli/connections.c
index 416a4eea79..ee5090ca80 100644
--- a/clients/cli/connections.c
+++ b/clients/cli/connections.c
@@ -49,7 +49,8 @@
#define PROMPT_BOND_MASTER _("Bond master: ")
#define PROMPT_TEAM_MASTER _("Team master: ")
#define PROMPT_BRIDGE_MASTER _("Bridge master: ")
-#define PROMPT_CONNECTION _("Connection (name, UUID, or path): ")
+#define PROMPT_CONNECTION _("Connection (name, UUID, or path): ")
+#define PROMPT_CONNECTIONS _("Connection(s) (name, UUID, or path): ")
static const char *nmc_known_vpns[] =
{ "openvpn", "vpnc", "pptp", "openconnect", "openswan", "libreswan",
@@ -2471,8 +2472,8 @@ do_connection_down (NmCli *nmc, int argc, char **argv)
if (argc == 0) {
if (nmc->ask) {
- line = nmc_readline (PROMPT_CONNECTION);
- nmc_string_to_arg_array (line, "", TRUE, &arg_arr, &arg_num);
+ line = nmc_readline (PROMPT_CONNECTIONS);
+ nmc_string_to_arg_array (line, NULL, TRUE, &arg_arr, &arg_num);
arg_ptr = arg_arr;
}
if (arg_num == 0) {
@@ -8868,8 +8869,8 @@ do_connection_delete (NmCli *nmc, int argc, char **argv)
if (argc == 0) {
if (nmc->ask) {
- line = nmc_readline (PROMPT_CONNECTION);
- nmc_string_to_arg_array (line, "", TRUE, &arg_arr, &arg_num);
+ line = nmc_readline (PROMPT_CONNECTIONS);
+ nmc_string_to_arg_array (line, NULL, TRUE, &arg_arr, &arg_num);
arg_ptr = arg_arr;
}
if (arg_num == 0) {
@@ -9058,7 +9059,7 @@ gen_func_connection_names (const char *text, int state)
for (i = 0; i < nm_cli.connections->len; i++) {
NMConnection *con = NM_CONNECTION (nm_cli.connections->pdata[i]);
const char *id = nm_connection_get_id (con);
- connections[i++] = id;
+ connections[i] = id;
}
connections[i] = NULL;
@@ -9077,14 +9078,17 @@ nmcli_con_tab_completion (const char *text, int start, int end)
/* Disable readline's default filename completion */
rl_attempted_completion_over = 1;
- /* Disable appending space after completion */
- rl_completion_append_character = '\0';
+ if (g_strcmp0 (rl_prompt, PROMPT_CONNECTION) == 0) {
+ /* Disable appending space after completion */
+ rl_completion_append_character = '\0';
- if (!is_single_word (rl_line_buffer))
- return NULL;
+ if (!is_single_word (rl_line_buffer))
+ return NULL;
- if (g_strcmp0 (rl_prompt, PROMPT_CONNECTION) == 0)
generator_func = gen_func_connection_names;
+ } else if (g_strcmp0 (rl_prompt, PROMPT_CONNECTIONS) == 0) {
+ generator_func = gen_func_connection_names;
+ }
if (generator_func)
match_array = rl_completion_matches (text, generator_func);