summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrice Clement <monsieurp@gentoo.org>2016-01-10 21:05:57 +0000
committerPatrice Clement <monsieurp@gentoo.org>2016-01-10 21:07:14 +0000
commitfab2a7c5536a218bd909b2c7265e9c69296316dc (patch)
treed45d74843b68e16c97e46722a8e3d5ff8d9bd06a /app-shells/bash-completion/files
parentx11-drivers/nvidia-drivers: Automatic SLOT assignment. (diff)
downloadgentoo-fab2a7c5536a218bd909b2c7265e9c69296316dc.tar.gz
gentoo-fab2a7c5536a218bd909b2c7265e9c69296316dc.tar.bz2
gentoo-fab2a7c5536a218bd909b2c7265e9c69296316dc.zip
app-shells/bash-completion: Add patch to fix completion with escape characters. Fixes bug 543100.
Package-Manager: portage-2.2.26 Signed-off-by: Patrice Clement <monsieurp@gentoo.org>
Diffstat (limited to 'app-shells/bash-completion/files')
-rw-r--r--app-shells/bash-completion/files/bash-completion-2.1-escape-characters.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/app-shells/bash-completion/files/bash-completion-2.1-escape-characters.patch b/app-shells/bash-completion/files/bash-completion-2.1-escape-characters.patch
new file mode 100644
index 000000000000..5e0de75982a3
--- /dev/null
+++ b/app-shells/bash-completion/files/bash-completion-2.1-escape-characters.patch
@@ -0,0 +1,27 @@
+--- bash-completion-2.1/bash_completion.orig 2014-03-09 17:38:14 +0000
++++ bash-completion-2.1/bash_completion 2014-03-13 23:26:44 +0000
+@@ -536,13 +536,23 @@
+ # @param $2 Name of variable to return result to
+ _quote_readline_by_ref()
+ {
+- if [[ $1 == \'* ]]; then
++ if [ -z "$1" ]; then
++ # avoid quoting if empty
++ printf -v $2 %s "$1"
++ elif [[ $1 == \'* ]]; then
+ # Leave out first character
+ printf -v $2 %s "${1:1}"
++ elif [[ $1 == ~* ]]; then
++ # avoid escaping first ~
++ printf -v $2 ~%q "${1:1}"
+ else
+ printf -v $2 %q "$1"
+ fi
+
++ # Replace double escaping ( \\ ) by single ( \ )
++ # This happens always when argument is already escaped at cmdline,
++ # and passed to this function as e.g.: file\ with\ spaces
++ [[ ${!2} == *\\* ]] && printf -v $2 %s "${1//\\\\/\\}"
+ # If result becomes quoted like this: $'string', re-evaluate in order to
+ # drop the additional quoting. See also: http://www.mail-archive.com/
+ # bash-completion-devel@lists.alioth.debian.org/msg01942.html