-/* Copyright (c) 1979 Regents of the University of California */
+/* Copyright (c) 1980 Regents of the University of California */
+static char *sccsid = "@(#)ex_vops3.c 6.2 10/23/80";
#include "ex.h"
#include "ex_tty.h"
#include "ex_vis.h"
register int i;
register char *parens, *cp;
- for (cp = cursor; !any(*cp, "({)}");)
+ for (cp = cursor; !any(*cp, "({[)}]");)
if (*cp++ == 0)
return (0);
lf = 0;
- parens = any(*cp, "()") ? "()" : "{}";
+ parens = any(*cp, "()") ? "()" : any(*cp, "[]") ? "[]" : "{}";
if (*cp == parens[1]) {
dir = -1;
llimit = one;
if (i)
goim();
}
+ else {
+ strcLIN(sp);
+ strcpy(scurs, genbuf);
+ if (!lmatchp((line *) 0))
+ beep();
+ }
strcLIN(sp);
wdot = 0;
wcursor = 0;
register int c;
do {
- if (!lnext())
+ if (!lnext()) {
+ wdot = NOLINE;
return (0);
+ }
c = *wcursor;
if (c == parens[1])
level--;
if (*wcursor)
return (1);
if (wdot >= llimit) {
- if (wcursor > linebuf)
+ if (lf == vmove && wcursor > linebuf)
wcursor--;
return (0);
}