[Bash-completion-commits] [SCM] bash-completion branch, master, updated. 1.3-235-g26ae770

Igor Murzov igor at gplsoft.org
Mon May 2 10:27:00 UTC 2011


The following commit has been merged in the master branch:
commit c54f41ff26e2909bfd7d9bb05be7063dc5044db3
Author: Igor Murzov <igor at gplsoft.org>
Date:   Mon Jul 5 04:23:23 2010 +0400

    Improve slapt-get completion
    
    now _slapt-get completes multiple package names

diff --git a/contrib/slackware b/contrib/slackware
index 816faa3..486e747 100644
--- a/contrib/slackware
+++ b/contrib/slackware
@@ -41,22 +41,39 @@ _slapt-get()
             # argument required but no completions available
             return 0
             ;;
-        --install|-i|--show|--filelist)
+    esac
+
+    local words t
+    _get_comp_words_by_ref words
+
+    # search for last action (--install|--install-set|--remove|--show|--filelist)
+    for (( i=${#words[@]}-1; i>0; i-- )); do
+        if [[ ${words[i]} == -@(i|-install|-show|-filelist) ]]; then
+            t="all"
+            break
+        elif [[ ${words[i]} == --install-set ]]; then
+            t="set"
+            break
+        elif [[ ${words[i]} == --remove ]]; then
+            t="ins"
+            break
+        fi
+    done
+
+    case $t in
+        all) # --install|-i|--show|--filelist
             COMPREPLY=( $( slapt-get --search "^$cur" 2> /dev/null | \
                 awk '{print $1}' ) )
             return 0
             ;;
-        --install-set)
-            COMPREPLY=( $( compgen -W 'a ap d e f k kde kdei l n t tcl x \
-                xap y' -- "$cur" ) )
+        ins) # --remove
+            COMPREPLY=( $( (cd /var/log/packages; compgen -f -- "$cur") ) )
             return 0
             ;;
-        --remove)
-            COMPREPLY=( $( (cd /var/log/packages; compgen -f -- "$cur") ) )
+        set)
+            COMPREPLY=( $( compgen -W 'a ap d e f k kde kdei l n t tcl x \
+                xap y' -- "$cur" ) )
             return 0
             ;;
     esac
-
-    COMPREPLY=( $( slapt-get --search "^$cur" 2> /dev/null | \
-        awk '{print $1}' ) )
 } && complete -F _slapt-get slapt-get

-- 
bash-completion



More information about the Bash-completion-commits mailing list