summaryrefslogtreecommitdiffstats
path: root/Completion/Unix
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2006-04-05 10:04:31 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2006-04-05 10:04:31 +0000
commitfd92cf568670f733b36fb5bbb73607cbf915199f (patch)
tree342b7d74bd99ea8972fd561a95c1c78574a3a54b /Completion/Unix
parent22375: doc for ${(0)...} splitting (diff)
downloadzsh-fd92cf568670f733b36fb5bbb73607cbf915199f.tar
zsh-fd92cf568670f733b36fb5bbb73607cbf915199f.tar.gz
zsh-fd92cf568670f733b36fb5bbb73607cbf915199f.tar.bz2
zsh-fd92cf568670f733b36fb5bbb73607cbf915199f.tar.lz
zsh-fd92cf568670f733b36fb5bbb73607cbf915199f.tar.xz
zsh-fd92cf568670f733b36fb5bbb73607cbf915199f.tar.zst
zsh-fd92cf568670f733b36fb5bbb73607cbf915199f.zip
22393, 22402: use-ip and known-hosts-files styles
Diffstat (limited to 'Completion/Unix')
-rw-r--r--Completion/Unix/Type/_hosts37
1 files changed, 30 insertions, 7 deletions
diff --git a/Completion/Unix/Type/_hosts b/Completion/Unix/Type/_hosts
index 21a26e2e0..c93399945 100644
--- a/Completion/Unix/Type/_hosts
+++ b/Completion/Unix/Type/_hosts
@@ -2,29 +2,52 @@
# avoid calling variable "hosts", it's an obvious candidate for use in
# zstyle -e '*' hosts 'reply=($hosts)'
-local expl _hosts tmp
+local expl _hosts tmp useip
if ! zstyle -a ":completion:${curcontext}:hosts" hosts _hosts; then
if (( $+_cache_hosts == 0 )); then
# uniquify
typeset -gUa _cache_hosts
+ local ipstrip='[:blank:]#[^[:blank:]]#'
+
+ # This boolean style determines whether hosts completes IP addresses. The
+ # default is no (not using IP addresses).
+ zstyle -t ":completion:${curcontext}:hosts" use-ip && useip=yes
+ [[ -n $useip ]] && ipstrip=
if (( ${+commands[getent]} )); then
# pws: we were using the horrible ": ${(A)...:=}" syntax to assign
# to _cache_hosts, overriding the typeset as well as being unreadable
# and having obscure splitting behaviour. Why? We've just
# tested _cache_hosts doesn't exist.
- _cache_hosts=(${(s: :)${(ps:\t:)${(f)~~"$(_call_program hosts getent hosts 2>/dev/null)"}##[:blank:]#[^[:blank:]]#}})
+ _cache_hosts=(${(s: :)${(ps:\t:)${(f)~~"$(_call_program hosts getent hosts 2>/dev/null)"}##${~ipstrip}}})
else
- _cache_hosts=(${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}})
+ _cache_hosts=(${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##${~ipstrip}}})
if (( ${+commands[ypcat]} )) &&
tmp=$(_call_program hosts ypcat hosts.byname 2>/dev/null); then
- _cache_hosts+=( ${=${(f)tmp}##[:blank:]#[^[:blank:]]#} ) # If you use YP
+ _cache_hosts+=( ${=${(f)tmp}##${~ipstrip}} ) # If you use YP