diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 2000-01-21 10:10:08 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 2000-01-21 10:10:08 +0000 |
commit | b8907b986b739e3c6b07e5df3f4cf4794dc2bc64 (patch) | |
tree | c9e312785eecd116a7b6c332f2f638113d538e28 | |
parent | 09a9a37aaccf043ad6e9c66344a1b722df633013 (diff) | |
download | zsh-b8907b986b739e3c6b07e5df3f4cf4794dc2bc64.tar.gz zsh-b8907b986b739e3c6b07e5df3f4cf4794dc2bc64.tar.xz zsh-b8907b986b739e3c6b07e5df3f4cf4794dc2bc64.zip |
zsh-workers/9396
-rw-r--r-- | Doc/Zsh/mod_zle.yo | 6 | ||||
-rw-r--r-- | Functions/Misc/nslookup | 10 | ||||
-rw-r--r-- | Src/Zle/zle_main.c | 14 |
3 files changed, 24 insertions, 6 deletions
diff --git a/Doc/Zsh/mod_zle.yo b/Doc/Zsh/mod_zle.yo index edca157df..9e15cd6ff 100644 --- a/Doc/Zsh/mod_zle.yo +++ b/Doc/Zsh/mod_zle.yo @@ -144,7 +144,7 @@ by `tt(bindkey -m)'. findex(vared) cindex(parameters, editing) cindex(editing parameters) -item(tt(vared) [ tt(-Aach) ] [ tt(-p) var(prompt) ] [ tt(-r) var(rprompt) ] var(name))( +item(tt(vared) [ tt(-Aache) ] [ tt(-p) var(prompt) ] [ tt(-r) var(rprompt) ] var(name))( The value of the parameter var(name) is loaded into the edit buffer, and the line editor is invoked. When the editor exits, var(name) is set to the string value returned by the editor. @@ -161,7 +161,9 @@ created automatically, even without tt(-c). If the tt(-p) flag is given, the following string will be taken as the prompt to display at the left. If the tt(-r) flag is given, the following string gives the prompt to display at the right. If the -tt(-h) flag is specified, the history can be accessed from ZLE. +tt(-h) flag is specified, the history can be accessed from ZLE. If the +tt(-e) flag is given, typing tt(^D) (Control-D) on an empty line +causes tt(vared) to exit immediatly with a non-zero return value. ) findex(zle) cindex(widgets, rebinding) diff --git a/Functions/Misc/nslookup b/Functions/Misc/nslookup index 8cbbdce6b..499cabf5a 100644 --- a/Functions/Misc/nslookup +++ b/Functions/Misc/nslookup @@ -8,19 +8,23 @@ local tmp line compcontext=nslookup curcontext=':nslookup' pmpt trap 'return 130' INT trap 'zpty -d nslookup' EXIT -zstyle -s ':nslookup' prompt pmpt || pmpt='> ' +pmpt=() +zstyle -s ':nslookup' prompt tmp && pmpt=(-p "$tmp") +zstyle -s ':nslookup' rprompt tmp && pmpt=("$pmpt[@]" -r "$tmp") +(( $#pmpt )) || pmpt=(-p '> ') zpty nslookup nslookup zpty -r nslookup line '*> ' print -nr "$line" -while line=''; vared -p "$pmpt" line; do +while line=''; vared -he "$pmpt[@]" line; do + print -s "$line" [[ "$line" = exit ]] && break zpty -w nslookup "$line" - zpty -r nslookup line '*> ' + zpty -r nslookup line '*> ' || break print -nr "$line" done diff --git a/Src/Zle/zle_main.c b/Src/Zle/zle_main.c index abf870655..e82c361d3 100644 --- a/Src/Zle/zle_main.c +++ b/Src/Zle/zle_main.c @@ -734,7 +734,7 @@ bin_vared(char *name, char **args, char *ops, int func) char *s, *t, *ova = varedarg; Value v; Param pm = 0; - int create = 0; + int create = 0, ifl; int type = PM_SCALAR, obreaks = breaks, haso = 0; char *p1 = NULL, *p2 = NULL; FILE *oshout = NULL; @@ -787,6 +787,10 @@ bin_vared(char *name, char **args, char *ops, int func) /* -h option -- enable history */ ops['h'] = 1; break; + case 'e': + /* -e option -- enable EOF */ + ops['e'] = 1; + break; default: /* unrecognised option character */ zwarnnam(name, "unknown option: %s", *args, 0); @@ -834,7 +838,15 @@ bin_vared(char *name, char **args, char *ops, int func) pushnode(bufstack, ztrdup(s)); } LASTALLOC; varedarg = *args; + ifl = isfirstln; + if (ops['e']) + isfirstln = 1; + if (ops['h']) + hbegin(1); t = (char *) zleread(p1, p2, ops['h'] ? ZLRF_HISTORY : 0); + if (ops['h']) + hend(); + isfirstln = ifl; varedarg = ova; if (haso) { close(SHTTY); |