The following commit has been merged in the master branch:
commit 872b8befe8018f54226b961e9ff9b6045e187d77
Author: Guillaume Rousse <[email protected]>
Date:   Wed May 27 18:51:09 2009 +0200

    split update-alternatives completion

diff --git a/Makefile.am b/Makefile.am
index 897ee09..c8ae842 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -96,6 +96,7 @@ bashcomp_DATA = contrib/ant \
                contrib/tar \
                contrib/unace \
                contrib/unrar \
+               contrib/update-alternatives \
                contrib/vncviewer \
                contrib/wodim \
                contrib/wvdial \
diff --git a/bash_completion b/bash_completion
index 944464b..6b10a5e 100644
--- a/bash_completion
+++ b/bash_completion
@@ -3850,98 +3850,6 @@ _querybts()
 } &&
 complete -F _querybts $filenames querybts
 
-# update-alternatives completion
-#
-have update-alternatives && {
-_installed_alternatives()
-{
-       local admindir
-       # find the admin dir
-       for i in alternatives dpkg/alternatives rpm/alternatives; do
-               [ -d /var/lib/$i ] && admindir=/var/lib/$i && break
-       done
-       for (( i=1; i < COMP_CWORD; i++ )); do
-               if [[ "${COMP_WORDS[i]}" == --admindir ]]; then
-                       admindir=${COMP_WORDS[i+1]}
-                       break
-               fi
-       done
-       COMPREPLY=( $( compgen -W '$( command ls $admindir )' -- $cur ) )
-}
-
-_update_alternatives()
-{
-       local cur prev mode args i
-
-       COMPREPLY=()
-       cur=`_get_cword`
-       prev=${COMP_WORDS[COMP_CWORD-1]}
-
-       case "$prev" in
-       --@(altdir|admindir))
-               _filedir -d
-               return 0
-               ;;
-       --@(help|version))
-               return 0
-               ;;
-       esac
-
-       # find which mode to use and how many real args used so far
-       for (( i=1; i < COMP_CWORD; i++ )); do
-               if [[ "${COMP_WORDS[i]}" == 
--@(install|remove|auto|display|config|remove-all) ]]; then
-                       mode=${COMP_WORDS[i]}
-                       args=$(($COMP_CWORD - i))
-                       break
-               fi
-       done
-
-       case $mode in
-       --install)
-               case $args in
-               1)
-                       _filedir
-                       ;;
-               2)
-                       _installed_alternatives
-                       ;;
-               3)
-                       _filedir
-                       ;;
-               esac
-               ;;
-       --remove)
-               case $args in
-               1)
-                       _installed_alternatives
-                       ;;
-               2)
-                       _filedir
-                       ;;
-               esac
-               ;;
-       --auto)
-               _installed_alternatives
-               ;;
-       --remove-all)
-               _installed_alternatives
-               ;;
-       --display)
-               _installed_alternatives
-               ;;
-       --config)
-               _installed_alternatives
-               ;;
-       *)
-               COMPREPLY=( $( compgen -W '--verbose --quiet --help --version \
-                              --altdir --admindir' -- $cur ) \
-                           $( compgen -W '--install --remove --auto --display \
-                              --config' -- $cur ) )
-       esac
-}
-complete -F _update_alternatives update-alternatives alternatives
-}
-
 # lilo(8) completion
 #
 have lilo && {
diff --git a/contrib/update-alternatives b/contrib/update-alternatives
new file mode 100644
index 0000000..021e3a1
--- /dev/null
+++ b/contrib/update-alternatives
@@ -0,0 +1,94 @@
+# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
+# ex: ts=8 sw=8 noet filetype=sh
+#
+# bash completion for update-alternatives
+
+have update-alternatives && {
+_installed_alternatives()
+{
+       local admindir
+       # find the admin dir
+       for i in alternatives dpkg/alternatives rpm/alternatives; do
+               [ -d /var/lib/$i ] && admindir=/var/lib/$i && break
+       done
+       for (( i=1; i < COMP_CWORD; i++ )); do
+               if [[ "${COMP_WORDS[i]}" == --admindir ]]; then
+                       admindir=${COMP_WORDS[i+1]}
+                       break
+               fi
+       done
+       COMPREPLY=( $( compgen -W '$( command ls $admindir )' -- $cur ) )
+}
+
+_update_alternatives()
+{
+       local cur prev mode args i
+
+       COMPREPLY=()
+       cur=`_get_cword`
+       prev=${COMP_WORDS[COMP_CWORD-1]}
+
+       case "$prev" in
+       --@(altdir|admindir))
+               _filedir -d
+               return 0
+               ;;
+       --@(help|version))
+               return 0
+               ;;
+       esac
+
+       # find which mode to use and how many real args used so far
+       for (( i=1; i < COMP_CWORD; i++ )); do
+               if [[ "${COMP_WORDS[i]}" == 
--@(install|remove|auto|display|config|remove-all) ]]; then
+                       mode=${COMP_WORDS[i]}
+                       args=$(($COMP_CWORD - i))
+                       break
+               fi
+       done
+
+       case $mode in
+       --install)
+               case $args in
+               1)
+                       _filedir
+                       ;;
+               2)
+                       _installed_alternatives
+                       ;;
+               3)
+                       _filedir
+                       ;;
+               esac
+               ;;
+       --remove)
+               case $args in
+               1)
+                       _installed_alternatives
+                       ;;
+               2)
+                       _filedir
+                       ;;
+               esac
+               ;;
+       --auto)
+               _installed_alternatives
+               ;;
+       --remove-all)
+               _installed_alternatives
+               ;;
+       --display)
+               _installed_alternatives
+               ;;
+       --config)
+               _installed_alternatives
+               ;;
+       *)
+               COMPREPLY=( $( compgen -W '--verbose --quiet --help --version \
+                              --altdir --admindir' -- $cur ) \
+                           $( compgen -W '--install --remove --auto --display \
+                              --config' -- $cur ) )
+       esac
+}
+complete -F _update_alternatives update-alternatives alternatives
+}

-- 
bash-completion

_______________________________________________
Bash-completion-commits mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/bash-completion-commits

Reply via email to