diff options
author | Clint Adams <clint@users.sourceforge.net> | 2005-01-09 06:23:51 +0000 |
---|---|---|
committer | Clint Adams <clint@users.sourceforge.net> | 2005-01-09 06:23:51 +0000 |
commit | 52a5481b1acdf7695bbbc4cc6cd20e146ab9c5be (patch) | |
tree | 629b06e6e06e023ca0004e709ac6c7f8509649eb /Completion/Debian/Type | |
parent | 0470a378b6a36453443015a09a2ddb88d7113c3f (diff) | |
download | zsh-52a5481b1acdf7695bbbc4cc6cd20e146ab9c5be.tar.gz zsh-52a5481b1acdf7695bbbc4cc6cd20e146ab9c5be.tar.xz zsh-52a5481b1acdf7695bbbc4cc6cd20e146ab9c5be.zip |
* 20654: completion for wajig, and dpkg/deb_packages improvements from Karl Chen.
Diffstat (limited to 'Completion/Debian/Type')
-rw-r--r-- | Completion/Debian/Type/_deb_packages | 50 |
1 files changed, 45 insertions, 5 deletions
diff --git a/Completion/Debian/Type/_deb_packages b/Completion/Debian/Type/_deb_packages index 2486a7b0c..854570200 100644 --- a/Completion/Debian/Type/_deb_packages +++ b/Completion/Debian/Type/_deb_packages @@ -19,14 +19,54 @@ _deb_packages_update_installed () { if ( [[ ${+_deb_packages_cache_installed} -eq 0 ]] || _cache_invalid DEBS_installed ) && ! _retrieve_cache DEBS_installed; then - _deb_packages_cache_installed=( - ${${${(f)"$(dpkg --get-selections)"}:#*deinstall}%% *} - ) + _deb_packages_cache_installed=() + dpkg --get-selections | while read package state ; do + [[ $state = (install|hold) ]] && _deb_packages_cache_installed+=$package + done _store_cache DEBS_installed _deb_packages_cache_installed fi cachevar=_deb_packages_cache_installed } +_deb_packages_update_held () { + if ( [[ ${+_deb_packages_cache_held} -eq 0 ]] || + _cache_invalid DEBS_held ) && ! _retrieve_cache DEBS_held; + then + _deb_packages_cache_held=() + dpkg --get-selections | while read package state ; do + [[ $state = hold ]] && _deb_packages_cache_held+=$package + done + _store_cache DEBS_held _deb_packages_cache_held + fi + cachevar=_deb_packages_cache_held +} + +_deb_packages_update_deinstalled () { + if ( [[ ${+_deb_packages_cache_deinstalled} -eq 0 ]] || + _cache_invalid DEBS_deinstalled ) && ! _retrieve_cache DEBS_deinstalled; + then + _deb_packages_cache_deinstalled=() + dpkg --get-selections | while read package state ; do + [[ $state = deinstall ]] && _deb_packages_cache_deinstalled+=$package + done + _store_cache DEBS_deinstalled _deb_packages_cache_deinstalled + fi + cachevar=_deb_packages_cache_deinstalled +} + +_deb_packages_update_xinstalled () { + if ( [[ ${+_deb_packages_cache_xinstalled} -eq 0 ]] || + _cache_invalid DEBS_xinstalled ) && ! _retrieve_cache DEBS_xinstalled; + then + _deb_packages_cache_xinstalled=() + dpkg --get-selections | while read package state ; do + _deb_packages_cache_xinstalled+=$package + done + _store_cache DEBS_xinstalled _deb_packages_cache_xinstalled + fi + cachevar=_deb_packages_cache_xinstalled +} + _deb_packages_update_uninstalled () { _deb_packages_update_avail _deb_packages_update_installed @@ -46,14 +86,14 @@ _deb_packages () { zstyle ":completion:*:*:$service:*" cache-policy _debs_caching_policy fi - [[ "$command" = (installed|uninstalled|avail) ]] || { + [[ "$command" = (installed|deinstalled|xinstalled|held|uninstalled|avail) ]] || { _message "unknown command: $command" return } zstyle -s ":completion:${curcontext}:" packageset pkgset - [[ "$pkgset" = (installed|uninstalled|avail|available) ]] || { + [[ "$pkgset" = (installed|deinstalled|xinstalled|held|uninstalled|avail|available) ]] || { pkgset="$command" } |