about summary refs log tree commit diff
path: root/Src/Zle
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Zle')
-rw-r--r--Src/Zle/complist.c5
-rw-r--r--Src/Zle/zle.mdd72
-rw-r--r--Src/Zle/zle_tricky.c1
3 files changed, 5 insertions, 73 deletions
diff --git a/Src/Zle/complist.c b/Src/Zle/complist.c
index dc1037122..cc2ac7517 100644
--- a/Src/Zle/complist.c
+++ b/Src/Zle/complist.c
@@ -251,6 +251,7 @@ getcols(Listcols c)
 /* Information about the list shown. */
 
 static int noselect, mselect, inselect, mcol, mline, mcols, mlines, mmlen;
+static int selected;
 static Cmatch **mtab, **mmtabp;
 static Cmgroup *mgtab, *mgtabp;
 static struct listcols mcolors;
@@ -567,6 +568,7 @@ domenuselect(Hookdef dummy, Chdata dat)
 	    inselect = 1;
 	    if (noselect)
 		break;
+	    selected = 1;
 	    if (!i) {
 		i = mcols * mlines;
 		while (i--)
@@ -876,8 +878,9 @@ menuselect(char **args)
     int d = 0;
 
     if (!minfo.cur) {
+	selected = 0;
 	menucomplete(args);
-	if ((minfo.cur && minfo.asked == 2) || getsparam("ZLS_SELECT"))
+	if ((minfo.cur && minfo.asked == 2) || selected)
 	    return 0;
 	d = 1;
     }
diff --git a/Src/Zle/zle.mdd b/Src/Zle/zle.mdd
index 95702e948..c3d6672a4 100644
--- a/Src/Zle/zle.mdd
+++ b/Src/Zle/zle.mdd
@@ -68,75 +68,3 @@ clean-here: clean.zle
 clean.zle:
 	rm -f zle_things.h zle_widget.h widgets.list thingies.list
 Make
-hasexport=1
-
-moddeps="comp1"
-
-autobins="bindkey vared zle"
-
-objects="zle_bindings.o zle_hist.o zle_keymap.o zle_main.o \
-zle_misc.o zle_move.o zle_params.o zle_refresh.o \
-zle_thingy.o zle_tricky.o zle_utils.o zle_vi.o zle_word.o"
-
-headers="zle.h zle_things.h"
-
-:<<\Make
-zle_things.h: thingies.list zle_things.sed
-	( \
-	    echo '/** zle_things.h                              **/'; \
-	    echo '/** indices of and pointers to known thingies **/'; \
-	    echo; \
-	    echo 'enum {'; \
-	    sed -n -f $(sdir)/zle_things.sed < thingies.list; \
-	    echo '    ZLE_BUILTIN_THINGY_COUNT'; \
-	    echo '};'; \
-	) > $@
-
-zle_widget.h: widgets.list zle_widget.sed
-	( \
-	    echo '/** zle_widget.h                                **/'; \
-	    echo '/** indices of and pointers to internal widgets **/'; \
-	    echo; \
-	    echo 'enum {'; \
-	    sed -n -f $(sdir)/zle_widget.sed < widgets.list; \
-	    echo '    ZLE_BUILTIN_WIDGET_COUNT'; \
-	    echo '};'; \
-	) > $@
-
-thingies.list: iwidgets.list
-	( \
-	    echo '/** thingies.list                            **/'; \
-	    echo '/** thingy structures for the known thingies **/'; \
-	    echo; \
-	    echo '/* format: T("name", TH_FLAGS, w_widget, t_nextthingy) */'; \
-	    echo; \
-	    sed -e 's/#.*//; /^$$/d; s/" *,.*/"/' \
-		-e 's/^"/T("/; s/$$/, 0,/; h' \
-		-e 's/-//g; s/^.*"\(.*\)".*/w_\1, t_D\1)/' \
-		-e 'H; g; s/\n/ /' \
-		< $(sdir)/iwidgets.list; \
-	    sed -e 's/#.*//; /^$$/d; s/" *,.*/"/' \
-		-e 's/^"/T("./; s/$$/, TH_IMMORTAL,/; h' \
-		-e 's/-//g; s/^.*"\.\(.*\)".*/w_\1, t_\1)/' \
-		-e 'H; g; s/\n/ /' \
-		< $(sdir)/iwidgets.list; \
-	) > $@
-
-widgets.list: iwidgets.list
-	( \
-	    echo '/** widgets.list                               **/'; \
-	    echo '/** widget structures for the internal widgets **/'; \
-	    echo; \
-	    echo '/* format: W(ZLE_FLAGS, t_firstname, functionname) */'; \
-	    echo; \
-	    sed -e 's/#.*//; /^$$/d; s/-//g' \
-		-e 's/^"\(.*\)" *, *\([^ ]*\) *, *\(.*\)/W(\3, t_\1, \2)/' \
-		< $(sdir)/iwidgets.list; \
-	) > $@
-
-zle_bindings.o zle_bindings..o: zle_widget.h widgets.list thingies.list
-
-clean-here: clean.zle
-clean.zle:
-	rm -f zle_things.h zle_widget.h widgets.list thingies.list
-Make
diff --git a/Src/Zle/zle_tricky.c b/Src/Zle/zle_tricky.c
index 5803ac392..6b47bc144 100644
--- a/Src/Zle/zle_tricky.c
+++ b/Src/Zle/zle_tricky.c
@@ -5915,6 +5915,7 @@ permmatches(int last)
     hasperm = 1;
     permmnum = mn - 1;
     permgnum = gn - 1;
+    listdat.valid = 0;
 
     return fi;
 }