More tar *[cr]*f completion improvements.

This commit is contained in:
Ville Skyttä 2011-03-20 18:43:12 +02:00
parent 0ae464e580
commit f973eb043c

View File

@ -3,12 +3,12 @@
have tar && { have tar && {
_tar() _tar()
{ {
local cur prev words ext regex tar untar local cur prev words cword ext regex tar untar
COMPREPLY=() COMPREPLY=()
_get_comp_words_by_ref cur prev words _get_comp_words_by_ref cur prev words cword
if [ $COMP_CWORD -eq 1 ]; then if [ $cword -eq 1 ]; then
COMPREPLY=( $( compgen -W 'c t x u r d A' -- "$cur" ) ) COMPREPLY=( $( compgen -W 'c t x u r d A' -- "$cur" ) )
return 0 return 0
fi fi
@ -19,15 +19,19 @@ _tar()
--*) --*)
;; ;;
?(-)*[cr]*f) ?(-)*[cr]*f)
ext='@(tar|gem|spkg)' if [[ $cword -eq 2 ]]; then
case ${words[1]} in ext='@(tar|gem|spkg)'
*a*) ext="$tars" ;; case ${words[1]} in
*z*) ext='t?(ar.)gz' ;; *a*) ext="$tars" ;;
*Z*) ext='tar.Z' ;; *z*) ext='t?(ar.)gz' ;;
*[jy]*) ext='t?(ar.)bz?(2)' ;; *Z*) ext='tar.Z' ;;
*J*) ext='t?(ar.)xz' ;; *[jy]*) ext='t?(ar.)bz?(2)' ;;
esac *J*) ext='t?(ar.)xz' ;;
_filedir $ext esac
_filedir $ext
else
_filedir
fi
return 0 return 0
;; ;;
+([^IZzJjy])f) +([^IZzJjy])f)