diff options
author | Jiří Klimeš <jklimes@redhat.com> | 2015-03-12 14:37:47 +0100 |
---|---|---|
committer | Jiří Klimeš <jklimes@redhat.com> | 2015-03-12 15:32:40 +0100 |
commit | f8366c8b1c025f4b2161ff075474fd3b9ad0abd7 (patch) | |
tree | b53af753107136d42c2cde74098e9acb59a814fd | |
parent | 661ef3cd46f0d68018d2556ab4c24bf1824919d5 (diff) | |
download | NetworkManager-f8366c8b1c025f4b2161ff075474fd3b9ad0abd7.tar.gz |
cli: fix TAB completion for multiple connections in 'nmcli con down/delete'
-rw-r--r-- | clients/cli/connections.c | 26 |
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); |