On 01/24/17 at 09:12pm, Earnestly via pacman-dev wrote:
> 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(-)

pacman -Sl is not suitable for parsing.  This breaks on databases with
spaces in their name.

> 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