--- bash_completion~ 2008-07-05 16:55:03.000000000 +0300 +++ bash_completion 2009-01-06 19:12:03.000000000 +0200 @@ -873,7 +873,7 @@ # weed out directory path names and paths to man pages COMPREPLY=( ${COMPREPLY[@]##*/?(:)} ) # strip suffix from man pages - COMPREPLY=( ${COMPREPLY[@]%.@(gz|bz2)} ) + COMPREPLY=( ${COMPREPLY[@]%.@(gz|bz2|lzma)} ) COMPREPLY=( $( compgen -W '${COMPREPLY[@]%.*}' -- "${cur//\\\\/}" ) ) [[ "$prev" != [0-9ln] ]] && _filedir '[0-9ln]' @@ -2050,7 +2050,7 @@ elif [[ ${COMP_WORDS[1]} == -b* ]]; then _filedir 'spec' else - _filedir '@(tgz|tar.@(gz|bz2))' + _filedir '@(tgz|tar.@(gz|bz2|lzma))' fi ;; --re@(build|compile)) @@ -2062,7 +2062,7 @@ fi ;; --tarbuild) - _filedir '@(tgz|tar.@(gz|bz2))' + _filedir '@(tgz|tar.@(gz|bz2|lzma))' ;; --@(re|add)sign) _filedir 'rpm' @@ -3454,6 +3454,44 @@ } && complete -F _bzip2 $filenames bzip2 +# lzma(1) completion +# +have lzma && +_lzma() +{ + local cur prev xspec + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-c -d -f -h -k -L -q -s \ + -v -V -z -1 -2 -3 -4 -5 -6 -7 -8 -9 \ + --help --decompress --compress --keep --force \ + --test --stdout --quiet --verbose --license \ + --version --small --fast --best --text' -- $cur ) ) + return 0 + fi + + xspec="*.lzma" + if [[ "$prev" == --* ]]; then + [[ "$prev" == --decompress || \ + "$prev" == --list || \ + "$prev" == --test ]] && xspec="!"$xspec + [[ "$prev" == --compress ]] && xspec= + elif [[ "$prev" == -* ]]; then + [[ "$prev" == -*[dt]* ]] && xspec="!"$xspec + [[ "$prev" == -*z* ]] && xspec= + fi + + _expand || return 0 + + COMPREPLY=( $( compgen -f -X "$xspec" -- $cur ) \ + $( compgen -d -- $cur ) ) +} && +complete -F _lzma $filenames lzma + # openssl(1) completion # have openssl && { @@ -7331,7 +7369,7 @@ fi; done # strip suffix from info pages - COMPREPLY=( ${COMPREPLY[@]%.@(gz|bz2)} ) + COMPREPLY=( ${COMPREPLY[@]%.@(gz|bz2|lzma)} ) COMPREPLY=( $( compgen -W '${COMPREPLY[@]%.*}' -- "${cur//\\\\/}" ) ) return 0