about summary refs log tree commit diff
path: root/clients/cli/nmcli-completion
diff options
context:
space:
mode:
Diffstat (limited to 'clients/cli/nmcli-completion')
-rw-r--r--clients/cli/nmcli-completion7
1 files changed, 6 insertions, 1 deletions
diff --git a/clients/cli/nmcli-completion b/clients/cli/nmcli-completion
index e78ab85c..e1716f60 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++ ))