about summary refs log tree commit diff
path: root/Src/Zle/zle_misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Zle/zle_misc.c')
-rw-r--r--Src/Zle/zle_misc.c48
1 files changed, 17 insertions, 31 deletions
diff --git a/Src/Zle/zle_misc.c b/Src/Zle/zle_misc.c
index 4d731a21c..a51cdf92e 100644
--- a/Src/Zle/zle_misc.c
+++ b/Src/Zle/zle_misc.c
@@ -98,7 +98,6 @@ deletechar(char **args)
 	backdel(zmult);
 	return 0;
     }
-    feep();
     return 1;
 }
 
@@ -182,7 +181,6 @@ gosmacstransposechars(char **args)
 	if (cs == ll || line[cs] == '\n' ||
 	    ((cs + 1 == ll || line[cs + 1] == '\n') &&
 	     (!cs || line[cs - 1] == '\n'))) {
-	    feep();
 	    return 1;
 	}
 	cs += (cs == 0 || line[cs - 1] == '\n') ? 2 : 1;
@@ -205,10 +203,8 @@ transposechars(char **args)
 	n = -n;
     while (n--) {
 	if (!(ct = cs) || line[cs - 1] == '\n') {
-	    if (ll == cs || line[cs] == '\n') {
-		feep();
+	    if (ll == cs || line[cs] == '\n')
 		return 1;
-	    }
 	    if (!neg)
 		cs++;
 	    ct++;
@@ -225,10 +221,8 @@ transposechars(char **args)
 	}
 	if (ct == ll || line[ct] == '\n')
 	    ct--;
-	if (ct < 1 || line[ct - 1] == '\n') {
-	    feep();
+	if (ct < 1 || line[ct - 1] == '\n')
 	    return 1;
-	}
 	cc = line[ct - 1];
 	line[ct - 1] = line[ct];
 	line[ct] = cc;
@@ -350,10 +344,8 @@ yank(char **args)
 	return 1;
     if (zmod.flags & MOD_VIBUF)
 	buf = &vibuf[zmod.vibuf];
-    if (!buf->buf) {
-	feep();
+    if (!buf->buf)
 	return 1;
-    }
     mark = cs;
     yankb = cs;
     while (n--) {
@@ -372,10 +364,8 @@ yankpop(char **args)
 {
     int cc;
 
-    if (!(lastcmd & ZLE_YANK) || !kring[kct].buf) {
-	feep();
+    if (!(lastcmd & ZLE_YANK) || !kring[kct].buf)
 	return 1;
-    }
     cs = yankb;
     foredel(yanke - yankb);
     cc = kring[kct].len;
@@ -438,7 +428,6 @@ whatcursorposition(char **args)
 int
 undefinedkey(char **args)
 {
-    feep();
     return 1;
 }
 
@@ -457,10 +446,9 @@ quotedinsert(char **args)
 #ifndef HAS_TIO
     zsetterm();
 #endif
-    if (c < 0) {
-	feep();
+    if (c < 0)
 	return 1;
-    } else
+    else
 	return selfinsert(args);
 }
 
@@ -470,10 +458,8 @@ digitargument(char **args)
 {
     int sign = (zmult < 0) ? -1 : 1;
 
-    if (c < '0' || c > '9') {
-	feep();
+    if (c < '0' || c > '9')
 	return 1;
-    }
 
     if (!(zmod.flags & MOD_TMULT))
 	zmod.tmult = 0;
@@ -493,10 +479,8 @@ digitargument(char **args)
 int
 negargument(char **args)
 {
-    if (zmod.flags & MOD_TMULT) {
-	feep();
+    if (zmod.flags & MOD_TMULT)
 	return 1;
-    }
     zmod.tmult = -1;
     zmod.flags |= MOD_TMULT|MOD_NEG;
     prefixflag = 1;
@@ -655,7 +639,7 @@ Thingy
 executenamedcommand(char *prmt)
 {
     Thingy cmd;
-    int len, l = strlen(prmt), ols = listshown;
+    int len, l = strlen(prmt), ols = listshown, feep = 0;
     char *ptr;
     char *okeymap = curkeymapname;
 
@@ -688,12 +672,12 @@ executenamedcommand(char *prmt)
 	    zrefresh();
 	    c = getkey(0);
 	    if(c == EOF || !c || len == NAMLEN)
-		feep();
+		feep = 1;
 	    else
 		*ptr++ = c, len++;
 	} else if(cmd == Th(z_quotedinsert)) {
 	    if((c = getkey(0)) == EOF || !c || len == NAMLEN)
-		feep();
+		feep = 1;
 	    else
 		*ptr++ = c, len++;
 	} else if(cmd == Th(z_backwarddeletechar) ||
@@ -744,7 +728,7 @@ executenamedcommand(char *prmt)
 		    scanhashtable(thingytab, 1, 0, DISABLED, scancompcmd, 0);
 		} LASTALLOC;
 		if (empty(cmdll))
-		    feep();
+		    feep = 1;
 		else if (cmd == Th(z_listchoices) ||
 		    cmd == Th(z_deletecharorlist)) {
 		    int zmultsav = zmult;
@@ -766,7 +750,7 @@ executenamedcommand(char *prmt)
 			!(isset(LISTAMBIGUOUS) && cmdambig > len)) {
 			int zmultsav = zmult;
 			if (isset(LISTBEEP))
-			    feep();
+			    feep = 1;
 			statusll = l + cmdambig + 1;
 			zmult = 1;
 			listlist(cmdll);
@@ -776,12 +760,14 @@ executenamedcommand(char *prmt)
 		}
 	    } else {
 		if (len == NAMLEN || icntrl(c) || cmd != Th(z_selfinsert))
-		    feep();
+		    feep = 1;
 		else
 		    *ptr++ = c, len++;
 	    }
 	}
-	handlefeep();
+	if (feep)
+	    handlefeep(zlenoargs);
+	feep = 0;
     }
 }