diff options
-rw-r--r-- | Completion/User/.distfiles | 2 | ||||
-rw-r--r-- | Completion/User/_domains | 20 | ||||
-rw-r--r-- | Completion/User/_nslookup | 18 | ||||
-rw-r--r-- | Doc/Zsh/compsys.yo | 8 |
4 files changed, 38 insertions, 10 deletions
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 diff --git a/Doc/Zsh/compsys.yo b/Doc/Zsh/compsys.yo index 48bb42621..384f9db29 100644 --- a/Doc/Zsh/compsys.yo +++ b/Doc/Zsh/compsys.yo @@ -453,6 +453,9 @@ for entries in the directory stack item(tt(displays))( for X display names ) +item(tt(domains))( +for network domains +) item(tt(expansions))( used by the tt(_expand) completer for possible expansions ) @@ -707,6 +710,11 @@ This is used with the tt(cvs) tag by the function completing for the tt(cvs) command to decide if the tt(zsh/stat) module should be used to generate only names of modified files in the appropriate places. ) +item(tt(domains))( +If set, gives the names of network domains that should be +completed. If this is not set by the user domain names mentioned in +tt(/etc/resolv.conf) will be used. +) item(tt(expand))( Like tt(cursor), this style is used with the tt(paths) tag. If its value contains the string tt(prefix), the partially typed path from |