From 08f335e4851dd626c0a9c4f5e3b0fe661909e6f4 Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Sun, 23 Jan 2000 22:34:02 +0000 Subject: zsh-3.1.6-dev-16 --- Functions/Misc/nslookup | 47 +++++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 22 deletions(-) (limited to 'Functions/Misc/nslookup') diff --git a/Functions/Misc/nslookup b/Functions/Misc/nslookup index 499cabf5a..d59a5e66c 100644 --- a/Functions/Misc/nslookup +++ b/Functions/Misc/nslookup @@ -1,31 +1,34 @@ # Simple wrapper function for `nslookup'. With completion if you are using # the function based completion system. -setopt localoptions localtraps completealiases +setopt localoptions completealiases -local tmp line compcontext=nslookup curcontext=':nslookup' pmpt +local char line compcontext=nslookup pid -trap 'return 130' INT -trap 'zpty -d nslookup' EXIT +trap 'print -p exit;return' INT -pmpt=() -zstyle -s ':nslookup' prompt tmp && pmpt=(-p "$tmp") -zstyle -s ':nslookup' rprompt tmp && pmpt=("$pmpt[@]" -r "$tmp") -(( $#pmpt )) || pmpt=(-p '> ') +coproc command nslookup +pid=$! -zpty nslookup nslookup - -zpty -r nslookup line '*> ' -print -nr "$line" - -while line=''; vared -he "$pmpt[@]" line; do - print -s "$line" - [[ "$line" = exit ]] && break - - zpty -w nslookup "$line" - - zpty -r nslookup line '*> ' || break - print -nr "$line" +while read -pk 1 char; do + line="$line$char" + [[ "$line" = *' +> ' ]] && break +done +print -nr - "$line" + +line='' +while vared -p '> ' line; do + print -p "$line" + line='' + while read -pk 1 char; do + line="$line$char" + [[ "$line" = *' +> ' ]] && break + done + print -nr - "$line" + line='' done -zpty -w nslookup 'exit' +print -p exit +wait $pid -- cgit 1.4.1