[Bash-completion-commits] [SCM] bash-completion branch, master, updated. f24dbe8dd45cba63c6acf89fa8a300b1eae56567

David Paleino dapal at debian.org
Mon Mar 8 11:42:22 UTC 2010


The following commit has been merged in the master branch:
commit 2491104bac1e7ed1d0c58924d6c00bc3c94d5618
Author: David Paleino <dapal at debian.org>
Date:   Tue Feb 9 11:09:04 2010 +0100

    contrib/dpkg: update completion to current API

diff --git a/contrib/dpkg b/contrib/dpkg
index 69493b3..a70ccef 100644
--- a/contrib/dpkg
+++ b/contrib/dpkg
@@ -23,8 +23,7 @@ _dpkg()
     local cur prev i
 
     COMPREPLY=()
-    cur=`_get_cword`
-    prev=${COMP_WORDS[COMP_CWORD-1]}
+    _get_comp_words_by_ref cur prev
     i=$COMP_CWORD
 
     _expand || return 0
@@ -104,9 +103,7 @@ _dpkg_reconfigure()
     local cur prev opt
 
     COMPREPLY=()
-    cur=`_get_cword`
-    prev=${COMP_WORDS[COMP_CWORD-1]}
-
+    _get_comp_words_by_ref cur prev
 
     case $prev in
         -f|--frontend)
@@ -123,8 +120,8 @@ _dpkg_reconfigure()
     esac
 
     if [[ "$cur" == -* ]]; then
-        COMPREPLY=( $( compgen -W '-f --frontend -p --priority -a --all -u \
-            --unseen-only -h --help -s --showold --force --terse' -- "$cur" ) )
+        COMPREPLY=( $(compgen -W '--frontend --priority --all --unseen-only \
+                      --help --showold --force --terse' -- "$cur" ) )
     else
         COMPREPLY=( $( _comp_dpkg_installed_packages "$cur" ) )
     fi
@@ -136,18 +133,18 @@ complete -F _dpkg_reconfigure -o default dpkg-reconfigure
 have dpkg-source &&
 _dpkg_source()
 {
-    local cur prev options work i action packopts unpackopts
+    local cur prev options work i action packopts unpackopts fields
 
-    packopts="-c -l -F -V -T -D -U -W -E -sa -i -I -sk -sp -su -sr -ss -sn -sA -sK -sP -sU -sR"
+    packopts="-c -l -F -V -T -D -U -W -E -sa -i -I -sk -sr -ss -sA -sK -sP \
+              -sU -sR"
     unpackopts="-sp -sn -su"
-    options=`echo "-x -b $packopts $unpackopts" | xargs echo | sort -u | xargs echo`
+    options="-x -b $packopts $unpackopts"
+    fields="Format Source Version Binary Maintainer Uploader Architecture \
+            Standards-Version Build-Depends Files"
 
     COMPREPLY=()
-    if [ "$1" != "dpkg-source" ]; then
-        return 1
-    fi
-    cur=`_get_cword`
-    prev=${COMP_WORDS[COMP_CWORD-1]}
+    _get_comp_words_by_ref cur prev
+
     action="options"
     for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do
         if [[ ${COMP_WORDS[$i]} == "-x" ]]; then
@@ -158,45 +155,28 @@ _dpkg_source()
             action=help
         fi
     done
-    # if currently seeing a complete option, return just itself.
-    for i in $options; do
-        if [ "$cur" = "$i" ]; then
-            COMPREPLY=( "$cur" )
-            return 0
-        fi
-    done
+
     case $action in
         unpack)
-            if [[ "$cur" == - || "$cur" == -s ]]; then
-                COMPREPLY=( $unpackopts )
-                return 0
-            fi
             case $prev in
                 -x)
-                    COMPREPLY=( $( compgen -d -- "$cur" ) \
-                            $( compgen -f -X '!*.dsc' -- "$cur" ) )
+                    _filedir -d
+                    _filedir 'dsc'
                     return 0
                     ;;
                 *)
-                    COMPREPLY=( $unpackopts $(compgen -d -f -- "$cur" ) )
+                    COMPREPLY=( $( compgen -W "$unpackopts" -- "$cur" ) )
+                    _filedir -d
+                    _filedir
                     return 0
                     ;;
             esac
             return 0
             ;;
         pack)
-            if [ "$cur" = "-" ]; then
-                COMPREPLY=( $packopts )
-                return 0
-            fi
-            if [ "$cur" = "-s" ]; then
-                COMPREPLY=( "-sa" "-sk" "-sp" "-su" "-sr" "-ss" "-sn" \
-                    "-sA" "-sK" "-sP" "-sU" "-sR" )
-                return 0
-            fi
             case $prev in
                 -b)
-                    COMPREPLY=( $( compgen -d -- "$cur" ) )
+                    _filedir -d
                     return 0
                     ;;
                 -c|-l|-T|-i|-I)
@@ -206,12 +186,13 @@ _dpkg_source()
                     # -i: <regexp> filter out files to ignore diffs of.
                     # -I: filter out files when building tarballs.
                     # return directory names and file names
-                    COMPREPLY=( $( compgen -d -f ) )
+                    _filedir -d
+                    _filedir
                     return 0
                     ;;
                 -F)
                     # -F: force change log format
-                    COMPREPLY=( $( ( cd /usr/lib/dpkg/parsechangelog; compgen -f "$cur" ) ) )
+                    COMPREPLY=( $( command ls /usr/lib/dpkg/parsechangelog ) )
                     return 0
                     ;;
                 -V|-D)
@@ -229,32 +210,25 @@ _dpkg_source()
                         COMPREPLY=()
                         return 0
                     else
-                        COMPREPLY=( Format Source Version Binary Maintainer Uploader Architecture Standards-Version Build-Depends Files )
+                        COMPREPLY=( $( compgen -W "$fields" -- "$cur" ) )
                         return 0
                     fi
                     ;;
                 -U)
                     # -U: remove a field
                     # Suggest possible fieldnames
-                    COMPREPLY=( Format Source Version Binary Maintainer Uploader Architecture Standards-Version Build-Depends Files )
+                    COMPREPLY=( $( compgen -W "$fields" -- "$cur" ) )
                     return 0
                     ;;
                 *)
-                    COMPREPLY=( $packopts )
+                    COMPREPLY=( $( compgen -W "$packopts $unpackopts" -- "$cur" ) )
                     return 0
                     ;;
             esac
             return 0
             ;;
         *)
-            # if seeing a partial option, return possible completions.
-            if [ "$cur" = "-s" ]; then
-                COMPREPLY=( "-sa" "-sk" "-sp" "-su" "-sr" "-ss" "-sn" \
-                        "-sA" "-sK" "-sP" "-sU" "-sR" )
-                return 0
-            fi
-            # else return all possible options.
-            COMPREPLY=( $options )
+            COMPREPLY=( $( compgen -W "$options" -- "$cur" ) )
             return 0
             ;;
     esac

-- 
bash-completion



More information about the Bash-completion-commits mailing list