Sophie

Sophie

distrib > Mageia > 8 > armv7hl > by-pkgid > c25533a9a28f1c172f6239bd1412ce99 > files > 2

bash-completion-2.11-1.mga8.src.rpm

diff -Naur -x '*~' bash-completion-2.1/bash_completion bash-completion-2.1-fix-readline-quoting/bash_completion
--- bash-completion-2.1/bash_completion	2013-04-05 12:55:51.000000000 +0200
+++ bash-completion-2.1-fix-readline-quoting/bash_completion	2014-03-18 20:43:15.922496482 +0100
@@ -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:
     # https://www.mail-archive.com/bash-completion-devel@lists.alioth.debian.org/msg01942.html