diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2016-10-17 15:07:50 +0200 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2016-10-26 13:41:00 +0200 |
commit | 108f04e71eeeb599073eb11ebbdf9b09dabeb6a3 (patch) | |
tree | f08b09856834ec663cb8c9f5afcefd5d3067894f | |
parent | 7034ea7aa33328a2ab937d3b1559dfcb59bc8130 (diff) | |
download | NetworkManager-108f04e71eeeb599073eb11ebbdf9b09dabeb6a3.tar.gz |
cli: completion: escape shell special characters "()&!"
https://bugzilla.gnome.org/show_bug.cgi?id=772629
-rw-r--r-- | clients/cli/nmcli-completion | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clients/cli/nmcli-completion b/clients/cli/nmcli-completion index e78ab85c82..e1716f6024 100644 --- a/clients/cli/nmcli-completion +++ b/clients/cli/nmcli-completion @@ -25,10 +25,11 @@ _nmcli_list_nl() # [']bla'bla"bla\bla bla --> [']bla'\''bla"bla\bla bla COMPREPLY[$i]="${entry//\'/${escaped_single_quote}}" elif [[ "${cur:0:1}" == '"' ]]; then - # started with double quote, escaping all double quotes and all backslashes + # started with double quote, escaping all double quotes, backslashes and ! # ["]bla'bla"bla\bla bla --> ["]bla'bla\"bla\\bla bla entry="${entry//\\/\\\\}" entry="${entry//\"/\\\"}" + entry="${entry//!/\"\\!\"}" COMPREPLY[$i]="$entry" else # no quotes in front, escaping _everything_ @@ -37,6 +38,10 @@ _nmcli_list_nl() entry="${entry//\'/\'}" entry="${entry//\"/\\\"}" entry="${entry// /\\ }" + entry="${entry//\(/\\(}" + entry="${entry//)/\\)}" + entry="${entry//!/\\!}" + entry="${entry//&/\\&}" COMPREPLY[$i]="$entry" fi (( i++ )) |