Use more obscure coding :)

This commit is contained in:
David Paleino 2009-10-26 09:44:27 +01:00
parent 27b266d051
commit 79c7de608f

View File

@ -30,7 +30,7 @@ _aptitude()
-Z -v --verbose --purge-unused --schedule-only'
for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do
if [[ ${COMP_WORDS[i]} == @(install|reinstall|hold|unhold|markauto|unmarkauto|dist-upgrade|full-upgrade|download|show|forbid-version|purge|remove|changelog|why|why-not|keep|keep-all|build-dep|@(add|remove)-user-tag) ]]; then
if [[ ${COMP_WORDS[i]} == @(@(|re)install|@(|un)hold|@(|un)markauto|@(dist|full)-upgrade|download|show|forbid-version|purge|remove|changelog|why@(|-not)|keep@(|-all)|build-dep|@(add|remove)-user-tag) ]]; then
special=${COMP_WORDS[i]}
fi
#exclude some mutually exclusive options
@ -40,7 +40,7 @@ _aptitude()
if [[ -n "$special" ]]; then
case $special in
@(install|hold|markauto|unmarkauto|dist-upgrade|full-upgrade|download|show|changelog|why|why-not|build-dep|@(add|remove)-user-tag))
@(install|hold|@(|un)markauto|@(dist|full)-upgrade|download|show|changelog|why@(|-not)|build-dep|@(add|remove)-user-tag))
COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) )
return 0
;;
@ -57,14 +57,14 @@ _aptitude()
case $prev in
# don't complete anything if these options are found
@(autoclean|clean|forget-new|search|upgrade|safe-upgrade|update|keep-all))
@(@(auto|)clean|forget-new|search|@(|safe-)upgrade|update|keep-all))
return 0
;;
-S)
_filedir
return 0
;;
-@(t|-target-release|-default-release))
-@(t|-@(target|default)-release))
COMPREPLY=( $( apt-cache policy | \
grep "release.o=Debian,a=$cur" | \
sed -e "s/.*a=\(\w*\).*/\1/" | uniq 2> /dev/null ) )