diff options
Diffstat (limited to 'Completion/User/_groups')
-rw-r--r-- | Completion/User/_groups | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/Completion/User/_groups b/Completion/User/_groups index f1963a8e7..0007c1791 100644 --- a/Completion/User/_groups +++ b/Completion/User/_groups @@ -1,15 +1,18 @@ #compdef newgrp -local expl +local expl groups _wanted groups expl group || return 1 -if (( ! $+groups )); then - if (( ${+commands[ypcat]} )); then - : ${(A)groups:=${${(s: :)$(ypcat group.byname)}%%:*}} # If you use YP - else - : ${(A)groups:=${${(s: :)$(</etc/group)}%%:*}} - fi +if ! _style -a groups groups groups; then + (( $+_cache_groups )) || + if (( ${+commands[ypcat]} )); then + : ${(A)_cache_groups:=${${(s: :)$(ypcat group.byname)}%%:*}} # If you use YP + else + : ${(A)_cache_groups:=${${(s: :)$(</etc/group)}%%:*}} + fi + + groups=( "$_cache_groups[@]" ) fi -compadd "$@" "$expl[@]" - $groups +compadd "$@" "$expl[@]" - "$groups[@]" |