summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/Zle/complist.c10
2 files changed, 10 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 42180110b..0b40856cb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-07-03 Sven Wischnowsky <wischnow@zsh.org>
+
+ * 17394: Src/Zle/complist.c: fix for interactive mode when menu
+ selection is called via the menu-select widget
+
2002-07-02 Sven Wischnowsky <wischnow@zsh.org>
* 17393: Completion/Unix/Command/_chown,
diff --git a/Src/Zle/complist.c b/Src/Zle/complist.c
index e941d3d95..22e994863 100644
--- a/Src/Zle/complist.c
+++ b/Src/Zle/complist.c
@@ -2201,9 +2201,9 @@ domenuselect(Hookdef dummy, Chdata dat)
menucomplete(zlenoargs);
iforcemenu = 0;
- if (dat->num < 1 || !minfo.cur || !*(minfo.cur)) {
+ if ((dat ? dat->num : nmatches) < 1 || !minfo.cur || !*(minfo.cur)) {
nolist = 1;
- if (dat->nmesg || nmessages) {
+ if ((dat ? (dat->nmesg || nmessages) : nmessages)) {
showinglist = -2;
zrefresh();
} else {
@@ -2768,13 +2768,13 @@ domenuselect(Hookdef dummy, Chdata dat)
mselect = mlastcols = mlastlines = -1;
mstatus = NULL;
inselect = mhasstat = 0;
- if (acc) {
+ if (acc && validlist && minfo.cur) {
menucmp = lastambig = hasoldlist = 0;
do_single(*(minfo.cur));
}
if (wasnext || broken) {
menucmp = 2;
- showinglist = -2;
+ showinglist = (validlist ? -2 : 0);
minfo.asked = 0;
if (!noselect) {
int nos = noselect;
@@ -2784,7 +2784,7 @@ domenuselect(Hookdef dummy, Chdata dat)
}
}
if (!noselect && (!dat || acc)) {
- showinglist = -2;
+ showinglist = (validlist ? -2 : 0);
onlyexpl = oe;
if (!smatches)
clearlist = 1;