From bfd6782b5a7a75568be3554bbdc7d7eee53e6538 Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Tue, 11 Jan 2000 22:04:24 +0000 Subject: zsh-workers/9295 --- Src/Modules/parameter.c | 4 +++- Src/loop.c | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'Src') diff --git a/Src/Modules/parameter.c b/Src/Modules/parameter.c index 23097e10c..94aff0c18 100644 --- a/Src/Modules/parameter.c +++ b/Src/Modules/parameter.c @@ -838,8 +838,10 @@ scanpmoptions(HashTable ht, ScanFunc func, int flags) for (i = 0; i < optiontab->hsize; i++) for (hn = optiontab->nodes[i]; hn; hn = hn->next) { + int optno = ((Optname) hn)->optno, ison; pm.nam = hn->nam; - pm.u.str = dupstring(opts[((Optname) hn)->optno] ? "on" : "off"); + ison = optno < 0 ? !opts[-optno] : opts[optno]; + pm.u.str = dupstring(ison ? "on" : "off"); func((HashNode) &pm, flags); } } diff --git a/Src/loop.c b/Src/loop.c index 0d7379c00..b8e7f956f 100644 --- a/Src/loop.c +++ b/Src/loop.c @@ -154,7 +154,7 @@ execselect(Cmd cmd, LinkList args, int flags) Forcmd node; char *str, *s; LinkNode n; - int i; + int i, usezle; FILE *inp; size_t more; @@ -172,12 +172,13 @@ execselect(Cmd cmd, LinkList args, int flags) lastval = 0; pushheap(); cmdpush(CS_SELECT); - inp = fdopen(dup((SHTTY == -1) ? 0 : SHTTY), "r"); + usezle = interact && SHTTY != -1 && isset(USEZLE); + inp = fdopen(dup(usezle ? SHTTY : 0), "r"); more = selectlist(args, 0); for (;;) { for (;;) { if (empty(bufstack)) { - if (interact && SHTTY != -1 && isset(USEZLE)) { + if (usezle) { int oef = errflag; isfirstln = 1; -- cgit 1.4.1