GIF89a;
Direktori : /usr/share/zsh/5.0.2/functions/ |
Current File : //usr/share/zsh/5.0.2/functions/_hosts |
#compdef ftp rwho rup xping traceroute host aaaa zone mx ns soa txt # avoid calling variable "hosts", it's an obvious candidate for use in # zstyle -e '*' hosts 'reply=($hosts)' 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)"}##${~ipstrip}}}) else _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}##${~ipstrip}} ) # If you use YP fi fi local khostfile typeset -Ua khostfiles # This style specifies a list of files to look up for host names and IP # addresses, if asked to. The files can contain comma separated host names # and IP's, and any text on a line after the first whitespace,| or # is # discarded. ssh's known_hosts files are thus supported. This style defaults # to the list /etc/ssh/ssh_known_hosts, ~/.ssh/known_hosts zstyle -a ":completion:${curcontext}:hosts" known-hosts-files khostfiles || khostfiles=(/etc/ssh/ssh_known_hosts ~/.ssh/known_hosts) for khostfile in $khostfiles; do if [[ -r $khostfile ]]; then khosts=(${${(s:,:)${(j:,:)${(u)${(f)"$(<$khostfile)"}%%[ |#]*}}}:#*[\[\]]*}) if [[ -z $useip ]]; then khosts=(${${${khosts:#(#s)[0-9]##.[0-9]##.[0-9]##.[0-9]##(#e)}:#(#s)[0-9a-f:]##(#e)}:#*[\[\]]*}) fi _cache_hosts+=($khosts) fi done fi _hosts=( "$_cache_hosts[@]" ) fi _wanted hosts expl host \ compadd -M 'm:{a-zA-Z}={A-Za-z} r:|.=* r:|=*' -a "$@" - _hosts