mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-05 19:18:00 +02:00
cli: completion: escape shell special characters "()&!"
https://bugzilla.gnome.org/show_bug.cgi?id=772629
This commit is contained in:
parent
7034ea7aa3
commit
108f04e71e
1 changed files with 6 additions and 1 deletions
|
|
@ -25,10 +25,11 @@ _nmcli_list_nl()
|
||||||
# [']bla'bla"bla\bla bla --> [']bla'\''bla"bla\bla bla
|
# [']bla'bla"bla\bla bla --> [']bla'\''bla"bla\bla bla
|
||||||
COMPREPLY[$i]="${entry//\'/${escaped_single_quote}}"
|
COMPREPLY[$i]="${entry//\'/${escaped_single_quote}}"
|
||||||
elif [[ "${cur:0:1}" == '"' ]]; then
|
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
|
# ["]bla'bla"bla\bla bla --> ["]bla'bla\"bla\\bla bla
|
||||||
entry="${entry//\\/\\\\}"
|
entry="${entry//\\/\\\\}"
|
||||||
entry="${entry//\"/\\\"}"
|
entry="${entry//\"/\\\"}"
|
||||||
|
entry="${entry//!/\"\\!\"}"
|
||||||
COMPREPLY[$i]="$entry"
|
COMPREPLY[$i]="$entry"
|
||||||
else
|
else
|
||||||
# no quotes in front, escaping _everything_
|
# 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//\(/\\(}"
|
||||||
|
entry="${entry//)/\\)}"
|
||||||
|
entry="${entry//!/\\!}"
|
||||||
|
entry="${entry//&/\\&}"
|
||||||
COMPREPLY[$i]="$entry"
|
COMPREPLY[$i]="$entry"
|
||||||
fi
|
fi
|
||||||
(( i++ ))
|
(( i++ ))
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue