[Bash-completion-commits] [SCM] bash-completion branch, master, updated. 1.3-35-gf973eb0

Ville Skyttä ville.skytta at iki.fi
Sun Mar 20 16:43:23 UTC 2011


The following commit has been merged in the master branch:
commit f973eb043ced563230eb3e3f8634aa2d42ba0258
Author: Ville Skyttä <ville.skytta at iki.fi>
Date:   Sun Mar 20 18:43:12 2011 +0200

    More tar *[cr]*f completion improvements.

diff --git a/completions/tar b/completions/tar
index 1dd1031..bb57cef 100644
--- a/completions/tar
+++ b/completions/tar
@@ -3,12 +3,12 @@
 have tar && {
 _tar()
 {
-    local cur prev words ext regex tar untar
+    local cur prev words cword ext regex tar untar
 
     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" ) )
         return 0
     fi
@@ -19,15 +19,19 @@ _tar()
         --*)
             ;;
         ?(-)*[cr]*f)
-            ext='@(tar|gem|spkg)'
-            case ${words[1]} in
-                *a*)    ext="$tars"         ;;
-                *z*)    ext='t?(ar.)gz'     ;;
-                *Z*)    ext='tar.Z'         ;;
-                *[jy]*) ext='t?(ar.)bz?(2)' ;;
-                *J*)    ext='t?(ar.)xz'     ;;
-            esac
-            _filedir $ext
+            if [[ $cword -eq 2 ]]; then
+                ext='@(tar|gem|spkg)'
+                case ${words[1]} in
+                    *a*)    ext="$tars"         ;;
+                    *z*)    ext='t?(ar.)gz'     ;;
+                    *Z*)    ext='tar.Z'         ;;
+                    *[jy]*) ext='t?(ar.)bz?(2)' ;;
+                    *J*)    ext='t?(ar.)xz'     ;;
+                esac
+                _filedir $ext
+            else
+                _filedir
+            fi
             return 0
             ;;
         +([^IZzJjy])f)

-- 
bash-completion



More information about the Bash-completion-commits mailing list