diff options
author | Allan McRae <allan@archlinux.org> | 2011-03-21 14:11:18 +1000 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2011-03-21 07:40:27 -0500 |
commit | c3e72e11b643b2a24608e1936763fb148613e464 (patch) | |
tree | 8278776785ae2de8020a4a4d4f9261d26dacc756 | |
parent | fd3acff5e6b587c0fab04c2c3a34a1285e398a11 (diff) | |
download | pacman-c3e72e11b643b2a24608e1936763fb148613e464.tar.xz |
Fix zsh completion
Fixes completion for "pacman -S <tab>" and "pacman -S repo/<tab>"
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r-- | contrib/zsh_completion.in | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/contrib/zsh_completion.in b/contrib/zsh_completion.in index 16919134..fded4144 100644 --- a/contrib/zsh_completion.in +++ b/contrib/zsh_completion.in @@ -221,23 +221,20 @@ _pacman_completions_all_groups() { # these can be specified as either 'package' or 'repository/package' _pacman_completions_all_packages() { local -a cmd packages repositories packages_long + _pacman_get_command + + if compset -P1 '*/*'; then + packages=( $(_call_program packages $cmd[@] -Sql ${words[CURRENT]%/*}) ) + typeset -U packages + _wanted repo_packages expl "repository/package" compadd ${(@)packages} + else + packages=( $(_call_program packages $cmd[@] -Sql) ) + typeset -U packages + _wanted packages expl "packages" compadd - "${(@)packages}" - repositories=(${(o)${${${(M)${(f)"$(<@sysconfdir@/pacman.conf)"}:#\[*}/\[/}/\]/}:#options}) - typeset -U repositories - packages_long=(@localstatedir@/lib/pacman/sync/${^repositories}/*(/)) - packages=(${(o)${${packages_long#@localstatedir@/lib/pacman/sync/}#*/}%-*-*} ) - typeset -U packages - _wanted packages expl "packages" compadd - "${(@)packages}" - if [[ $PREFIX != */* ]] ; then repositories=(${(o)${${${(M)${(f)"$(<@sysconfdir@/pacman.conf)"}:#\[*}/\[/}/\]/}:#options}) typeset -U repositories _wanted repo_packages expl "repository/package" compadd -S "/" $repositories - else - compset -P '*/' - packages_long=(@localstatedir@/lib/pacman/sync/$IPREFIX*(/)) - packages=(${(o)${${packages_long#@localstatedir@/lib/pacman/sync/}#*/}%-*-*} ) - typeset -U packages - _wanted repo_packages expl "repository/package" compadd ${(@)packages} fi } |