summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Src/Zle/compcore.c13
-rw-r--r--Src/Zle/complist.c10
-rw-r--r--Src/Zle/zle_tricky.c8
4 files changed, 22 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index 4d06daa2e..130bc1c9f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2000-06-07 Sven Wischnowsky <wischnow@zsh.org>
+ * 11794: Src/Zle/compcore.c, Src/Zle/complist.c, Src/Zle/zle_tricky.c:
+ hopefully more consistent beeping with menu-selection
+
* 11792: Doc/Zsh/mod_zutil.yo, Src/Modules/zutil.c: -K option for
zparseopts to keep previous array values
diff --git a/Src/Zle/compcore.c b/Src/Zle/compcore.c
index 94f441229..ad048718d 100644
--- a/Src/Zle/compcore.c
+++ b/Src/Zle/compcore.c
@@ -500,16 +500,17 @@ before_complete(Hookdef dummy, int *lst)
/**/
int
-after_complete(Hookdef dummy, Compldat dat)
+after_complete(Hookdef dummy, int *dat)
{
if (menucmp && !oldmenucmp) {
- struct chdata dat;
+ struct chdata cdat;
int ret;
- dat.matches = amatches;
- dat.num = nmatches;
- dat.cur = NULL;
- if ((ret = runhookdef(MENUSTARTHOOK, (void *) &dat))) {
+ cdat.matches = amatches;
+ cdat.num = nmatches;
+ cdat.cur = NULL;
+ if ((ret = runhookdef(MENUSTARTHOOK, (void *) &cdat))) {
+ dat[1] = 0;
menucmp = menuacc = 0;
if (ret == 2) {
fixsuffix();
diff --git a/Src/Zle/complist.c b/Src/Zle/complist.c
index 2f7873d63..622219aaf 100644
--- a/Src/Zle/complist.c
+++ b/Src/Zle/complist.c
@@ -1624,7 +1624,7 @@ domenuselect(Hookdef dummy, Chdata dat)
Thingy cmd;
Menustack u = NULL;
int i = 0, acc = 0, wishcol = 0, setwish = 0, oe = onlyexpl, wasnext = 0;
- int space, lbeg = 0, step = 1, wrap, pl = nlnct, broken = 0;
+ int space, lbeg = 0, step = 1, wrap, pl = nlnct, broken = 0, first = 1;
char *s;
if (fdat || (dummy && (!(s = getsparam("MENUSELECT")) ||
@@ -1712,6 +1712,9 @@ domenuselect(Hookdef dummy, Chdata dat)
lbeg = mlbeg;
onlyexpl = 0;
showinglist = -2;
+ if (first && !listshown && isset(LISTBEEP))
+ zbeep();
+ first = 0;
zrefresh();
inselect = 1;
if (noselect) {
@@ -1745,9 +1748,10 @@ domenuselect(Hookdef dummy, Chdata dat)
getk:
- if (!(cmd = getkeycmd()) || cmd == Th(z_sendbreak))
+ if (!(cmd = getkeycmd()) || cmd == Th(z_sendbreak)) {
+ zbeep();
break;
- else if (cmd == Th(z_acceptline)) {
+ } else if (cmd == Th(z_acceptline)) {
acc = 1;
break;
} else if (cmd == Th(z_acceptandinfernexthistory)) {
diff --git a/Src/Zle/zle_tricky.c b/Src/Zle/zle_tricky.c
index beed90704..fcbe9404c 100644
--- a/Src/Zle/zle_tricky.c
+++ b/Src/Zle/zle_tricky.c
@@ -536,7 +536,7 @@ static int
docomplete(int lst)
{
char *s, *ol;
- int olst = lst, chl = 0, ne = noerrs, ocs, ret = 0;
+ int olst = lst, chl = 0, ne = noerrs, ocs, ret = 0, dat[2];
if (undoing)
setlastline();
@@ -777,9 +777,11 @@ docomplete(int lst)
zsfree(qword);
unmetafy_line();
- runhookdef(AFTERCOMPLETEHOOK, (void *) &lst);
+ dat[0] = lst;
+ dat[1] = ret;
+ runhookdef(AFTERCOMPLETEHOOK, (void *) dat);
- return ret;
+ return dat[1];
}
/* 1 if we are completing the prefix */