From de595fbc90aafdb6987576fcf7b9f1dd9a2a2d2b Mon Sep 17 00:00:00 2001 From: Bart Schaefer Date: Sun, 22 Oct 2000 02:34:16 +0000 Subject: Fix "vared -e". --- ChangeLog | 6 ++++++ Src/Zle/zle_main.c | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index f21d76331..fa1544fb9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2000-10-21 Bart Schaefer + + * 13057: Src/Zle/zle_main.c: `vared -h' should not imply `vared -e'; + use of -e should override the setting of the IGNOREEOF option. + (The -e flag was added by zsh-workers/9396, for 3.1.6-dev-16.) + 2000-10-20 Bart Schaefer * 13055: Src/hist.c, Src/Zle/zle_main.c: Fix `vared -h' for non- diff --git a/Src/Zle/zle_main.c b/Src/Zle/zle_main.c index 675dda63e..b2d075f91 100644 --- a/Src/Zle/zle_main.c +++ b/Src/Zle/zle_main.c @@ -748,7 +748,7 @@ bin_vared(char *name, char **args, char *ops, int func) struct value vbuf; Value v; Param pm = 0; - int create = 0, ifl; + int create = 0, ifl, ieof; int type = PM_SCALAR, obreaks = breaks, haso = 0; char *p1 = NULL, *p2 = NULL; FILE *oshout = NULL; @@ -900,11 +900,13 @@ bin_vared(char *name, char **args, char *ops, int func) varedarg = *args; ifl = isfirstln; - if (ops['e']) - isfirstln = 1; if (ops['h']) hbegin(2); + isfirstln = ops['e']; + ieof = opts[IGNOREEOF]; + opts[IGNOREEOF] = 0; t = (char *) zleread(p1, p2, ops['h'] ? ZLRF_HISTORY : 0); + opts[IGNOREEOF] = ieof; if (ops['h']) hend(NULL); isfirstln = ifl; -- cgit 1.4.1