diff --git a/bash-completion-doc.changes b/bash-completion-doc.changes index 33b538b..cce89a0 100644 --- a/bash-completion-doc.changes +++ b/bash-completion-doc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Sat Mar 28 15:01:27 UTC 2020 - Michal Suchanek + +- Fix completion excluding directories (boo#1167952). + * bash-completion-fix-missing-directory-completion-with-filename-pattern.patch + ------------------------------------------------------------------- Fri Mar 13 09:34:01 UTC 2020 - Fabian Vogt diff --git a/bash-completion-doc.spec b/bash-completion-doc.spec index 5e80c82..941380a 100644 --- a/bash-completion-doc.spec +++ b/bash-completion-doc.spec @@ -52,6 +52,8 @@ Patch9: rm-completion-smart-boo958462.patch Patch10: backticks-bsc963140.patch # PATCH-FIX-SUSE boo#1090515 Patch12: bash-completion-2.7-unRAR-remove.patch +# PATCH-FIX-SUSE boo#1167952 +Patch13: bash-completion-fix-missing-directory-completion-with-filename-pattern.patch BuildRequires: asciidoc BuildRequires: libxslt-tools BuildRequires: pkg-config @@ -76,6 +78,7 @@ package bash-completion. %patch9 -b .p9 %patch10 -b .p10 -p1 %patch12 -b .p12 -p0 +%patch13 -b .p13 -p1 %build %configure diff --git a/bash-completion-fix-missing-directory-completion-with-filename-pattern.patch b/bash-completion-fix-missing-directory-completion-with-filename-pattern.patch new file mode 100644 index 0000000..fa1e5c3 --- /dev/null +++ b/bash-completion-fix-missing-directory-completion-with-filename-pattern.patch @@ -0,0 +1,68 @@ +From 06f94a5c855fc38c0583a3b65c27c1c814a90bac Mon Sep 17 00:00:00 2001 +From: Michal Suchanek +Date: Mon, 30 Mar 2020 19:48:39 +0200 +Subject: [PATCH] Revert "_filedir: avoid duplicate dirs internally, and a + compgen -d call for files" + +This reverts commit da99bc55954e9f60b9c3a9e9071ff6301d7015cb. + +References: https://github.com/scop/bash-completion/issues/378 boo#1167952 + +The solution without calling compgen -d proves unrealiable. + +Until this is fixed revert to calling compgen -d for completions with +file pattern. +--- + bash_completion | 25 ++++++++----------------- + 1 file changed, 8 insertions(+), 17 deletions(-) + +diff --git a/bash_completion b/bash_completion +index 0fc89e51..015fea12 100644 +--- a/bash_completion ++++ b/bash_completion +@@ -560,34 +560,25 @@ _filedir() + local -a toks + local reset + +- if [[ "$1" == -d ]]; then +- reset=$(shopt -po noglob); set -o noglob +- toks=( $(compgen -d -- "$cur") ) +- IFS=' '; $reset; IFS=$'\n' +- else ++ reset=$(shopt -po noglob); set -o noglob ++ toks=( $(compgen -d -- "$cur") ) ++ IFS=' '; $reset; IFS=$'\n' ++ ++ 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 +- local xspec=${1:+"!*.@($1|${1^^})"} plusdirs=() +- +- # Use plusdirs to get dir completions if we have a xspec; if we don't, +- # there's no need, dirs come along with other completions. Don't use +- # plusdirs quite yet if fallback is in use though, in order to not ruin +- # the fallback condition with the "plus" dirs. +- local opts=( -f -X "$xspec" ) +- [[ $xspec ]] && plusdirs=(-o plusdirs) +- [[ ${COMP_FILEDIR_FALLBACK-} ]] || opts+=( "${plusdirs[@]}" ) +- ++ local xspec=${1:+"!*.@($1|${1^^})"} + reset=$(shopt -po noglob); set -o noglob +- toks+=( $(compgen "${opts[@]}" -- $quoted) ) ++ toks+=( $(compgen -f -X "$xspec" -- $quoted) ) + IFS=' '; $reset; IFS=$'\n' + + # Try without filter if it failed to produce anything and configured to + [[ -n ${COMP_FILEDIR_FALLBACK:-} && -n "$1" && ${#toks[@]} -lt 1 ]] && { + reset=$(shopt -po noglob); set -o noglob +- toks+=( $(compgen -f "${plusdirs[@]}" -- $quoted) ) ++ toks+=( $(compgen -f -- $quoted) ) + IFS=' '; $reset; IFS=$'\n' + } + fi +-- +2.25.1 + diff --git a/bash-completion-mplayer-complete-directories.patch b/bash-completion-mplayer-complete-directories.patch deleted file mode 100644 index 8a7fee2..0000000 --- a/bash-completion-mplayer-complete-directories.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur bash-completion-2.10.orig/completions/mplayer bash-completion-2.10/completions/mplayer ---- bash-completion-2.10.orig/completions/mplayer 2019-12-05 16:43:10.000000000 +0100 -+++ bash-completion-2.10/completions/mplayer 2020-03-28 15:56:14.137258895 +0100 -@@ -279,6 +279,7 @@ - ;; - *) - _filedir '@(m?(j)p?(e)g|M?(J)P?(E)G|wm[av]|WM[AV]|avi|AVI|asf|ASF|vob|VOB|bin|BIN|dat|DAT|vcd|VCD|ps|PS|pes|PES|fl[iv]|FL[IV]|fxm|FXM|viv|VIV|rm?(j)|RM?(J)|ra?(m)|RA?(M)|yuv|YUV|mov|MOV|qt|QT|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|og[gmavx]|OG[GMAVX]|w?(a)v|W?(A)V|dump|DUMP|mk[av]|MK[AV]|aac|AAC|m2v|M2V|dv|DV|rmvb|RMVB|mid|MID|t[ps]|T[PS]|3g[p2]|3gpp?(2)|mpc|MPC|flac|FLAC|vro|VRO|divx|DIVX|aif?(f)|AIF?(F)|m2t?(s)|M2T?(S)|mts|MTS|vdr|VDR|xvid|XVID|ape|APE|gif|GIF|nut|NUT|bik|BIK|web[am]|WEB[AM]|amr|AMR|awb|AWB|iso|ISO|opus|OPUS|m[eo]d|M[EO]D|xm|XM|it|IT|s[t3]m|S[T3]M|mtm|MTM|w64|W64)?(.@(crdownload|part))' -+ _filedir -d - ;; - esac - -Only in bash-completion-2.10/completions: mplayer~ diff --git a/bash-completion.changes b/bash-completion.changes index dcd187c..cce89a0 100644 --- a/bash-completion.changes +++ b/bash-completion.changes @@ -1,8 +1,8 @@ ------------------------------------------------------------------- Sat Mar 28 15:01:27 UTC 2020 - Michal Suchanek -- Fix mplayer completion excluding directories (boo#1167952). - * bash-completion-mplayer-complete-directories.patch +- Fix completion excluding directories (boo#1167952). + * bash-completion-fix-missing-directory-completion-with-filename-pattern.patch ------------------------------------------------------------------- Fri Mar 13 09:34:01 UTC 2020 - Fabian Vogt diff --git a/bash-completion.spec b/bash-completion.spec index 771e773..c3d54ac 100644 --- a/bash-completion.spec +++ b/bash-completion.spec @@ -55,7 +55,7 @@ Patch10: backticks-bsc963140.patch # PATCH-FIX-SUSE boo#1090515 Patch12: bash-completion-2.7-unRAR-remove.patch # PATCH-FIX-SUSE boo#1167952 -Patch13: bash-completion-mplayer-complete-directories.patch +Patch13: bash-completion-fix-missing-directory-completion-with-filename-pattern.patch %if %build_doc BuildRequires: asciidoc BuildRequires: libxslt-tools