summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Completion/User/_domains20
1 files changed, 20 insertions, 0 deletions
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[@]"