From 8d754910a260186dd0e19b4c69b6bafba55a54f6 Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Thu, 20 Jan 2000 18:39:40 +0000 Subject: zsh-workers/9388 --- Completion/User/.distfiles | 2 +- Completion/User/_domains | 20 ++++++++++++++++++++ Completion/User/_nslookup | 18 +++++++++--------- 3 files changed, 30 insertions(+), 10 deletions(-) create mode 100644 Completion/User/_domains (limited to 'Completion/User') diff --git a/Completion/User/.distfiles b/Completion/User/.distfiles index 3e9581878..0ac019d37 100644 --- a/Completion/User/.distfiles +++ b/Completion/User/.distfiles @@ -1,7 +1,7 @@ DISTFILES_SRC=' .distfiles _a2ps _archie _bison _bunzip2 _bzip2 _chown _compress _configure _cvs - _dd _dir_list _dirs _dvi _find _flex _gcc _gdb _gprof _groups _gs + _dd _dir_list _dirs _domains _dvi _find _flex _gcc _gdb _gprof _groups _gs _gunzip _gv _gzip _hosts _ispell _killall _lp _lynx _mailboxes _make _man _mh _mount _mutt _my_accounts _netscape _nslookup _other_accounts _pack _patch _pbm _pdf _perl_basepods _perl_builtin_funcs diff --git a/Completion/User/_domains b/Completion/User/_domains new file mode 100644 index 000000000..9bd94a4fd --- /dev/null +++ b/Completion/User/_domains @@ -0,0 +1,20 @@ +#autoload + +local expl domains tmp + +if ! zstyle -a ":completion${curcontext}:domains" domains domains; then + if (( ! $+_cache_domains )); then + _cache_domains=() + if [[ -f /etc/resolv.conf ]]; then + while read tmp; do + [[ "$tmp" = (domain|search)* ]] && + _cache_domains=( "$_cache_domains[@]" "${=${tmp%%[ ]#}#*[ ]}" ) + done < /etc/resolv.conf + _cache_domains=( "${(@)_nslookup_domains:#[ ]#}" ) + fi + fi + domains=( "$_cache_domains[@]" ) +fi + +_wanted domains expl domain && + compadd -M 'm:{a-zA-Z}={A-Za-z} r:|.=* r:|=*' "$@" "$expl[@]" - "$domains[@]" diff --git a/Completion/User/_nslookup b/Completion/User/_nslookup index 1aeae4306..7c67cb256 100644 --- a/Completion/User/_nslookup +++ b/Completion/User/_nslookup @@ -38,7 +38,7 @@ setopts=( '(noignoretc)ignoretc[ignore packet truncation errors]' \ '(ignoretc)noignoretc[don'"'"'t ignore packet truncation errors]' \ 'class[change query class]:query class:((in\:Internet\ class chaos\:CHAOS\ class hesiod\:MIT\ Athena\ Hesiod\ class any\:wildcard\ \(any\ of\ the\ above\)))' - 'domain[change default domain]:default domain:_hosts' + "domain[change default domain]:default domain:_domains" 'srchlist[change default domain and search list]: :->srchlist' 'port[change name server port]:name server port:' {query,}type'[change type of information query]:query information type:((a\:internet\ address cname\:canonical\ name\ for\ alias hinfo\:CPU\ and\ operating\ system\ type minfo\:mailbox\ or\ mail\ list\ information mx\:mail\ exchanger ns\:name\ server\ for\ zone ptr\:host\ name\ or\ other\ information soa\:domain\'"'"'s\ \`start-of-authority\'"'"'\ information txt\:text\ information uinfo\:user\ information wks\:supported\ well-known\ services))' @@ -53,8 +53,8 @@ if [[ -n "$compcontext" ]]; then _funcall ret _nslookup_command && return ret _alternative \ - 'commands:command:compadd server lserver root finger ls view help set' \ - 'hosts:: _host' && ret=0 + 'commands:command:(server lserver root finger ls view help set exit)' \ + 'hosts:: _hosts' && ret=0 return ret elif [[ "$compstate[context]" = redirect ]]; then @@ -103,7 +103,7 @@ if [[ -n "$compcontext" ]]; then '-d[all records]' \ '-h[CPU and operating system information]' \ '-s[well-known services]' \ - ':domain:_hosts' + ":domain:_domains" return ;; view) @@ -141,17 +141,17 @@ fi # This is completion after `srchlist' for both types. if [[ -n "$state" ]]; then - _tags hosts || return 1 + _tags domains || return 1 if compset -P '*/'; then - _description hosts expl 'search list entry' + _description domains expl 'search list entry' else - _description hosts expl 'default domain name and first search list entry' + _description domains expl 'default domain name and first search list entry' fi if [[ -n "$_vals_cache_multi" ]]; then - _hosts "$expl[@]" -qS/ -r "/\\- \\t\\n$_vals_cache_multi" + _domains "$expl[@]" -qS/ -r "/\\- \\t\\n$_vals_cache_multi" else - _hosts "$expl[@]" -qS/ + _domains "$expl[@]" -qS/ fi return fi -- cgit 1.4.1