From: Sven Wischnowsky <wischnow@informatik.hu-berlin.de>
To: zsh-workers@sunsite.auc.dk
Subject: vared and history
Date: Fri, 21 Jan 2000 10:36:35 +0100 (MET) [thread overview]
Message-ID: <200001210936.KAA02351@beta.informatik.hu-berlin.de> (raw)
Again no `PATCH:' in the subject because I'm not sure about this at
all...
The patch just makes bin_vared() call hbegin(1) and hend() when given
the -h option. That's the same loop() does, so it seemed sensible...
Peter: does this look like the right thing for you? It seems to work.
Aside: for functions like nslookup it would be nice if we could have
multiple histories and switch to a separate one in such functions.
Preferably with saving (into another file than the one for the normal
history) and so on...
Another thing is that in functions like nslookup one probably wants to
be able to use ^D on an empty line to leave vared. I couldn't find a
way to make this possible, so I added the -e option (making it accept
EOF). Is that right? Was there really no way?
The stuff in nslookup just makes it use -e and history and improves
the prompt styles.
Bye
Sven
diff -ru ../z.old/Doc/Zsh/mod_zle.yo Doc/Zsh/mod_zle.yo
--- ../z.old/Doc/Zsh/mod_zle.yo Fri Jan 21 10:12:19 2000
+++ Doc/Zsh/mod_zle.yo Fri Jan 21 10:36:14 2000
@@ -144,7 +144,7 @@
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 @@
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 -ru ../z.old/Functions/Misc/nslookup Functions/Misc/nslookup
--- ../z.old/Functions/Misc/nslookup Fri Jan 21 10:12:55 2000
+++ Functions/Misc/nslookup Fri Jan 21 10:32:06 2000
@@ -8,19 +8,23 @@
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 -ru ../z.old/Src/Zle/zle_main.c Src/Zle/zle_main.c
--- ../z.old/Src/Zle/zle_main.c Fri Jan 21 10:12:12 2000
+++ Src/Zle/zle_main.c Fri Jan 21 10:28:36 2000
@@ -734,7 +734,7 @@
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 @@
/* -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 @@
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);
--
Sven Wischnowsky wischnow@informatik.hu-berlin.de
next reply other threads:[~2000-01-21 9:36 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-01-21 9:36 Sven Wischnowsky [this message]
2000-01-22 19:52 ` Peter Stephenson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200001210936.KAA02351@beta.informatik.hu-berlin.de \
--to=wischnow@informatik.hu-berlin.de \
--cc=zsh-workers@sunsite.auc.dk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).