File sh-script-completion-boo977336.patch of Package bash-completion.6234

This allows to use COMP_FILEDIR_FALLBACK=yes even if
local sub directories exists (boo#977336)

---
 bash_completion |   35 ++++++++++++++++++-----------------
 1 file changed, 18 insertions(+), 17 deletions(-)

--- bash_completion
+++ bash_completion	2016-04-27 12:00:15.278198877 +0000
@@ -558,38 +558,39 @@ _quote_readline_by_ref()
 #
 _filedir()
 {
-    local IFS=$'\n' xspec
+    local IFS=$'\n'
 
     _tilde "$cur" || return 0
     _dollar "$cur" || return 0
 
     local -a toks
-    local quoted x tmp
-
-    _quote_readline_by_ref "$cur" quoted
-    x=$( compgen -d -- "$cur" ) &&
-    while read -r tmp; do
-        toks+=( "$tmp" )
-    done <<< "$x"
+    local x tmp
 
     if [[ "$1" != -d ]]; then
+        local quoted
+        _quote_readline_by_ref "$cur" quoted
+
         # Munge xspec to contain uppercase version too
         # http://thread.gmane.org/gmane.comp.shells.bash.bugs/15294/focus=15306
-        xspec=${1:+"!*.@($1|${1^^})"}
+        local xspec=${1:+"!*.@($1|${1^^})"}
         x=$( compgen -f -X "$xspec" -- $quoted ) &&
         while read -r tmp; do
             toks+=( "$tmp" )
         done <<< "$x"
-    fi
 
-    # If the filter failed to produce anything, try without it if configured to
-    [[ -n ${COMP_FILEDIR_FALLBACK:-} && \
-        -n "$1" && "$1" != -d && ${#toks[@]} -lt 1 ]] && \
-        x=$( compgen -f -- $quoted ) &&
-        while read -r tmp; do
-            toks+=( "$tmp" )
-        done <<< "$x"
+        # If the filter failed to produce anything, try without it if configured to
+        [[ -n ${COMP_FILEDIR_FALLBACK:-} && \
+            -n "$1" && "$1" != -d && ${#toks[@]} -lt 1 ]] && \
+            x=$( compgen -f -- $quoted ) &&
+            while read -r tmp; do
+                toks+=( "$tmp" )
+            done <<< "$x"
+    fi
 
+    x=$( compgen -d -- "$cur" ) &&
+    while read -r tmp; do
+        toks+=( "$tmp" )
+    done <<< "$x"
 
     if [[ ${#toks[@]} -ne 0 ]]; then
         # 2>/dev/null for direct invocation, e.g. in the _filedir unit test
openSUSE Build Service is sponsored by