diff options
Diffstat (limited to 'Src/Zle/zle_move.c')
-rw-r--r-- | Src/Zle/zle_move.c | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/Src/Zle/zle_move.c b/Src/Zle/zle_move.c index 9189218f1..e2096f6cf 100644 --- a/Src/Zle/zle_move.c +++ b/Src/Zle/zle_move.c @@ -228,6 +228,7 @@ vimatchbracket(char **args) otog: if (cs == ll || line[cs] == '\n') { + feep(); cs = ocs; return 1; } @@ -272,6 +273,7 @@ vimatchbracket(char **args) ct++; } if (cs < 0 || cs >= ll) { + feep(); cs = ocs; return 1; } else if(dir > 0 && virangeflag) @@ -293,8 +295,10 @@ viforwardchar(char **args) zmult = n; return ret; } - if (cs >= lim) + if (cs >= lim) { + feep(); return 1; + } while (n-- && cs < lim) cs++; return 0; @@ -313,8 +317,10 @@ vibackwardchar(char **args) zmult = n; return ret; } - if (cs == findbol()) + if (cs == findbol()) { + feep(); return 1; + } while (n--) { cs--; if (cs < 0 || line[cs] == '\n') { @@ -331,11 +337,14 @@ viendofline(char **args) { int oldcs = cs, n = zmult; - if (n < 1) + if (n < 1) { + feep(); return 1; + } while(n--) { if (cs > ll) { cs = oldcs; + feep(); return 1; } cs = findeol() + 1; @@ -376,7 +385,7 @@ vifindprevchar(char **args) tailadd = 0; return virepeatfind(args); } - return 1; + return 0; } /**/ @@ -409,8 +418,10 @@ virepeatfind(char **args) { int ocs = cs, n = zmult; - if (!vfinddir) + if (!vfinddir) { + feep(); return 1; + } if (n < 0) { int ret; zmult = -n; @@ -423,6 +434,7 @@ virepeatfind(char **args) cs += vfinddir; while (cs >= 0 && cs < ll && line[cs] != vfindchar && line[cs] != '\n'); if (cs < 0 || cs >= ll || line[cs] == '\n') { + feep(); cs = ocs; return 1; } @@ -468,8 +480,10 @@ visetmark(char **args) int ch; ch = getkey(0); - if (ch < 'a' || ch > 'z') + if (ch < 'a' || ch > 'z') { + feep(); return 1; + } ch -= 'a'; vimarkcs[ch] = cs; vimarkline[ch] = histline; @@ -486,14 +500,19 @@ vigotomark(char **args) if (ch == c) ch = 26; else { - if (ch < 'a' || ch > 'z') + if (ch < 'a' || ch > 'z') { + feep(); return 1; + } ch -= 'a'; } - if (!vimarkline[ch]) + if (!vimarkline[ch]) { + feep(); return 1; + } if (curhist != vimarkline[ch] && !zle_goto_hist(vimarkline[ch], 0, 0)) { vimarkline[ch] = 0; + feep(); return 1; } cs = vimarkcs[ch]; |