This mimics the approach taken with the bash completion scripts and
simply calls pacman -Sl to generate our list of unique repositories.

This fixes cases where custom repos are defined in pacman.d/config
snippets.
---
 scripts/completion/zsh_completion.in | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/scripts/completion/zsh_completion.in 
b/scripts/completion/zsh_completion.in
index f74fa297..d7435f6d 100644
--- a/scripts/completion/zsh_completion.in
+++ b/scripts/completion/zsh_completion.in
@@ -316,8 +316,7 @@ _pacman_completions_all_packages() {
                typeset -U packages
                ${seq} _wanted packages expl "packages" compadd ${sep[@]} - 
"${(@)packages}"
 
-               
repositories=(${(o)${${${(M)${(f)"$(<@sysconfdir@/pacman.conf)"}:#\[*}/\[/}/\]/}:#options})
-               typeset -U repositories
+               repositories=(${(u)${${(f)"$(pacman -Sl)"}%% *}})
                _wanted repo_packages expl "repository/package" compadd -S "/" 
$repositories
        fi
 }
@@ -348,9 +347,7 @@ _pacman_all_packages() {
 # provides completions for repository names
 _pacman_completions_repositories() {
        local -a cmd repositories
-       
repositories=(${(o)${${${(M)${(f)"$(<@sysconfdir@/pacman.conf)"}:#\[*}/\[/}/\]/}:#options})
-       # Uniq the array
-       typeset -U repositories
+       repositories=(${(u)${${(f)"$(pacman -Sl)"}%% *}})
        compadd "$@" -a repositories
 }
 
-- 
2.11.0

Reply via email to