From 24f824edb33597b8d43cc12f6b556cb6d3565b89 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Sun, 13 Apr 2008 08:32:51 +0000 Subject: less: fix somewhat elusive case when less gets stuck in search mode function old new delta read_lines 719 730 +11 goto_match 141 116 -25 --- miscutils/less.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'miscutils/less.c') diff --git a/miscutils/less.c b/miscutils/less.c index 1a67ca7ce..37ec5d976 100644 --- a/miscutils/less.c +++ b/miscutils/less.c @@ -384,6 +384,10 @@ static void read_lines(void) linepos = 0; } /* end of "read lines until we reach cur_fline" loop */ fill_match_lines(old_max_fline); +#if ENABLE_FEATURE_LESS_REGEXP + /* prevent us from being stuck in search for a match */ + wanted_match = -1; +#endif #undef readbuf } @@ -904,13 +908,8 @@ static void goto_match(int match) match = 0; /* Try to find next match if eof isn't reached yet */ if (match >= num_matches && eof_error > 0) { - wanted_match = match; + wanted_match = match; /* "I want to read until I see N'th match" */ read_lines(); - if (wanted_match >= num_matches) { - /* We still failed to find it. Prevent future - * read_lines() from trying... */ - wanted_match = num_matches - 1; - } } if (num_matches) { normalize_match_pos(match); -- cgit v1.2.3