mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-04 10:41:11 +02:00
zsh-workers/9396
This commit is contained in:
parent
09a9a37aac
commit
b8907b986b
3 changed files with 24 additions and 6 deletions
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue