The patch provides proper comma-separated completion for --ignore
and --ignoregroup

Signed-off-by: Nezmer <[email protected]>
---
This version of the patch is simpler.

 contrib/zsh_completion |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/contrib/zsh_completion b/contrib/zsh_completion
index 2f43d9b..b751c82 100644
--- a/contrib/zsh_completion
+++ b/contrib/zsh_completion
@@ -86,9 +86,9 @@ _pacman_opts_sync_modifiers=(
        '-w[Download packages only]'
        '-y[Download fresh package databases]'
        '*--ignore[Ignore a package upgrade]:package:
-               _pacman_completions_all_packages'
-       '*--ignoregroup[Ignore a group upgrade]:package group:
-               _pacman_completions_all_groups'
+               _pacman_completions_ignore_packages'
+       '*--ignoregroup[Ignore a group upgrade]:group:
+               _pacman_completions_ignore_groups'
        '--asdeps[Install packages as non-explicitly installed]'
        '--asexplicit[Install packages as explicitly installed]'
 )
@@ -240,6 +240,26 @@ _pacman_completions_all_packages() {
        fi
 }
 
+# provides comma-separated completions for packages available from 
repositories 
+# to be used with --ignore
+_pacman_completions_ignore_packages() {
+       local -a cmd packages
+       _pacman_get_command
+       packages=($(pacman -Slq))
+       typeset -U packages
+       _wanted packages expl "packages" _values -s "," compadd - 
"${(@)packages}"
+}
+
+# provides comma-separated completions for package groups to be used
+# with --ignoregroup
+_pacman_completions_ignore_groups() {
+       local -a cmd groups
+       _pacman_get_command
+       groups=($(pacman -Sg))
+       typeset -U groups
+       _wanted groups expl "groups" _values -s "," compadd - "${(@)groups}"
+}
+
 # provides completions for package groups
 _pacman_completions_installed_groups() {
        local -a cmd groups
-- 
1.6.6


Reply via email to