int ulglitch; /* terminal has underline mode glitch */
int pstate = 0; /* current UL state */
static int magic(FILE *, char *);
+char *previousre; /* previous search() buf[] item */
struct {
long chrctr, line;
} context, screen_start;
}
if (srchopt)
{
+ previousre = xstrdup(initbuf);
search (initbuf, stdin, 1);
if (noscroll)
left--;
if (firstf) {
firstf = 0;
if (srchopt) {
+ previousre = xstrdup(initbuf);
search (initbuf, f, 1);
if (noscroll)
left--;
fnum++;
firstf = 0;
}
+ free (previousre);
reset_tty ();
exit(EXIT_SUCCESS);
}
fflush (stdout);
break;
case 'n':
+ if (!previousre) {
+ more_error (_("No previous regular expression"));
+ break;
+ }
lastp++;
/* fallthrough */
case '/':
fflush (stdout);
if (lastp) {
putcerr('\r');
- search (NULL, f, nlines); /* Use previous r.e. */
+ search (previousre, f, nlines);
}
else {
ttyin (cmdbuf, sizeof(cmdbuf)-2, '/');
putcerr('\r');
+ free (previousre);
+ previousre = xstrdup(cmdbuf);
search (cmdbuf, f, nlines);
}
ret (dlines-1);
end_it (0);
}
more_error (_("Pattern not found"));
+ free (previousre);
+ previousre = NULL;
}
}