diff --git a/contrib/aptitude b/contrib/aptitude index bebeeb5e..1573e575 100644 --- a/contrib/aptitude +++ b/contrib/aptitude @@ -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 ) )