about summary refs log tree commit diff
path: root/Completion/Debian/_deb_packages
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Debian/_deb_packages')
-rw-r--r--Completion/Debian/_deb_packages12
1 files changed, 10 insertions, 2 deletions
diff --git a/Completion/Debian/_deb_packages b/Completion/Debian/_deb_packages
index efd33f93b..29b37ea48 100644
--- a/Completion/Debian/_deb_packages
+++ b/Completion/Debian/_deb_packages
@@ -32,16 +32,24 @@ _deb_packages_updage_uninstalled () {
 }
 
 _deb_packages () {
-  local command="$argv[$#]" expl cachevar
+  local command="$argv[$#]" expl cachevar pkgset
 
   [[ "$command" = (installed|uninstalled|avail) ]] || {
     _message "_deb_packages:unknown command: $command"
     return
   }
 
+  zstyle -s ":completion${curcontext}" packageset pkgset
+
+  [[ "$pkgset" = (installed|uninstalled|avail|available) ]] || {
+    pkgset="$command"
+  }
+
+  [[ "$pkgset" = "available" ]] && pkgset="avail"
+
   expl=("${(@)argv[1,-2]}")
 
-  _deb_packages_updage_$command
+  _deb_packages_updage_$pkgset
 
   _tags packages && compadd "$expl[@]" - "${(e):-"\${(@)$cachevar}"}"
 }