From faee37098994567bc7f263cddc891f8afc550b57 Mon Sep 17 00:00:00 2001 From: Allan McRae Date: Mon, 21 Mar 2011 14:11:18 +1000 Subject: [PATCH] Fix zsh completion Fixes completion for "pacman -S " and "pacman -S repo/" Signed-off-by: Allan McRae --- contrib/zsh_completion.in | 17 +++++++---------- 1 files changed, 7 insertions(+), 10 deletions(-) diff --git a/contrib/zsh_completion.in b/contrib/zsh_completion.in index 1691913..09bdabb 100644 --- a/contrib/zsh_completion.in +++ b/contrib/zsh_completion.in @@ -221,21 +221,18 @@ _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 [[ $words[3] != */* ]] ; then + 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/}#*/}%-*-*} ) + packages=( $(_call_program packages $cmd[@] -Sql ${words[3]//\/*/}) ) typeset -U packages _wanted repo_packages expl "repository/package" compadd ${(@)packages} fi -- 1.7.4.1