diff options
author | Oliver Kiddle <opk@users.sourceforge.net> | 2004-02-18 12:45:24 +0000 |
---|---|---|
committer | Oliver Kiddle <opk@users.sourceforge.net> | 2004-02-18 12:45:24 +0000 |
commit | a2638f9d57514116b85649bd78c38b57815382ee (patch) | |
tree | dc2903561f367ef5686cdb4e244c0d86f28f2396 /Completion | |
parent | 460e417caa50ecb7906b2cd3419c2a3c4588dd2e (diff) | |
download | zsh-a2638f9d57514116b85649bd78c38b57815382ee.tar.gz zsh-a2638f9d57514116b85649bd78c38b57815382ee.tar.xz zsh-a2638f9d57514116b85649bd78c38b57815382ee.zip |
19436: complete more things from nis
Diffstat (limited to 'Completion')
-rw-r--r-- | Completion/Unix/Type/_groups | 11 | ||||
-rw-r--r-- | Completion/Unix/Type/_hosts | 12 | ||||
-rw-r--r-- | Completion/Unix/Type/_printers | 8 |
3 files changed, 24 insertions, 7 deletions
diff --git a/Completion/Unix/Type/_groups b/Completion/Unix/Type/_groups index bbb80868b..b6d599c28 100644 --- a/Completion/Unix/Type/_groups +++ b/Completion/Unix/Type/_groups @@ -6,11 +6,14 @@ _tags groups || return 1 if ! zstyle -a ":completion:${curcontext}:" groups groups; then (( $+_cache_groups )) || - if (( ${+commands[ypcat]} )) && - tmp=$(_call_program groups ypcat group.byname 2>/dev/null); then - : ${(A)_cache_groups:=${${(f)tmp}%%:*}} # If you use YP + if (( ${+commands[getent]} )); then + : ${(A)_cache_groups:=${${(s: :)$(_call_program groups getent group 2>/dev/null)}%%:*}} else - : ${(A)_cache_groups:=${${(s: :)$(</etc/group)}%%:*}} + : ${(A)_cache_groups:=${${${(s: :)$(</etc/group)}%%:*}:#+}} + if (( ${+commands[ypcat]} )) && + tmp=$(_call_program groups ypcat group.byname 2>/dev/null); then + _cache_groups+=( ${${(f)tmp}%%:*} ) # If you use YP + fi fi groups=( "$_cache_groups[@]" ) diff --git a/Completion/Unix/Type/_hosts b/Completion/Unix/Type/_hosts index a058b28da..e530c8b42 100644 --- a/Completion/Unix/Type/_hosts +++ b/Completion/Unix/Type/_hosts @@ -1,10 +1,18 @@ #compdef ftp ping rwho rup xping traceroute host aaaa zone mx ns soa txt -local expl hosts +local expl hosts tmp if ! zstyle -a ":completion:${curcontext}:hosts" hosts hosts; then (( $+_cache_hosts )) || - : ${(A)_cache_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} + if (( ${+commands[getent]} )); then + : ${(A)_cache_hosts:=${(s: :)${(ps:\t:)${(f)~~"$(_call_program hosts getent hosts 2>/dev/null)"}##[:blank:]#[^[:blank:]]#}}} + else + : ${(A)_cache_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} + if (( ${+commands[ypcat]} )) && + tmp=$(_call_program hosts ypcat hosts.byname 2>/dev/null); then + _cache_hosts+=( ${=${(f)tmp}##[:blank:]#[^[:blank:]]#} ) # If you use YP + fi + fi hosts=( "$_cache_hosts[@]" ) fi diff --git a/Completion/Unix/Type/_printers b/Completion/Unix/Type/_printers index d736dd51d..02196daee 100644 --- a/Completion/Unix/Type/_printers +++ b/Completion/Unix/Type/_printers @@ -1,6 +1,6 @@ #compdef -value-,PRINTER,-default- -value-,LPDEST,-default- -local expl ret=1 list disp sep +local expl ret=1 list disp sep tmp if (( $+commands[lsallq] )); then # Use AIX's command to list print queues @@ -39,6 +39,12 @@ if (( ! $+_lp_cache )); then fi done < $file[1] fi + + if [[ $OSTYPE = solaris* ]] && (( ${+commands[ypcat]} )) && + tmp=$(_call_program printers ypcat printers.conf.byname 2>/dev/null); then + _lp_cache+=( ${${${(S)${(f)tmp}/(#b):*((#e)|description=([^:]#):)*/:${match[2]}|}%%|*}:#_default*} ) # If you use YP + fi + (( $#_lp_cache )) || _lp_cache=( 'lp0:Guessed default printer' ) (( $#_lp_alias_cache )) || unset _lp_alias_cache fi |