File: 09-backport-to-fix-wildcard-completion.patch

package info (click to toggle)
bash-completion 1%3A2.8-6
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 8,860 kB
  • sloc: exp: 9,759; makefile: 1,104; sh: 261; perl: 56; python: 47; xml: 29; ansic: 7; ruby: 2
file content (53 lines) | stat: -rw-r--r-- 1,770 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
commit 6ffde95c7ea257ff60cb51a263a8d33f4bb0898b
Author: dmerge <25472575+dmerge@users.noreply.github.com>
Date:   Fri Apr 20 22:14:08 2018 -0700

    _filedir: Refactor to remove heredoc-dependent loop

diff --git a/bash_completion b/bash_completion
index 98d277bd..48fe5987 100644
--- a/bash_completion
+++ b/bash_completion
@@ -553,12 +553,11 @@ _filedir()
     _tilde "$cur" || return
 
     local -a toks
-    local x tmp
+    local x reset
 
-    x=$( compgen -d -- "$cur" ) &&
-    while read -r tmp; do
-        toks+=( "$tmp" )
-    done <<< "$x"
+    reset=$(shopt -po noglob); set -o noglob
+    toks=( $( compgen -d -- "$cur" ) )
+    eval $reset
 
     if [[ "$1" != -d ]]; then
         local quoted
@@ -567,17 +566,16 @@ _filedir()
         # Munge xspec to contain uppercase version too
         # http://thread.gmane.org/gmane.comp.shells.bash.bugs/15294/focus=15306
         local xspec=${1:+"!*.@($1|${1^^})"}
-        x=$( compgen -f -X "$xspec" -- $quoted ) &&
-        while read -r tmp; do
-            toks+=( "$tmp" )
-        done <<< "$x"
+        reset=$(shopt -po noglob); set -o noglob
+        toks+=( $( compgen -f -X "$xspec" -- $quoted ) )
+        eval $reset
 
         # Try without filter if it failed to produce anything and configured to
-        [[ -n ${COMP_FILEDIR_FALLBACK:-} && -n "$1" && ${#toks[@]} -lt 1 ]] && \
-            x=$( compgen -f -- $quoted ) &&
-            while read -r tmp; do
-                toks+=( "$tmp" )
-            done <<< "$x"
+        [[ -n ${COMP_FILEDIR_FALLBACK:-} && -n "$1" && ${#toks[@]} -lt 1 ]] && {
+            reset=$(shopt -po noglob); set -o noglob
+            toks+=( $( compgen -f -- $quoted ) )
+            eval $reset
+        }
     fi
 
     if [[ ${#toks[@]} -ne 0 ]]; then