diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-03-08 18:12:01 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-03-08 18:12:01 +0000 |
commit | a1c631278bce9da92a4e8628a946e0e91cf2e2b5 (patch) | |
tree | 98e8ea974f24146827e6ff7cc2106f0b59c6d967 /miscutils/less.c | |
parent | 18d6fc1a506dfe717cb5de433870dd6eca46270b (diff) | |
download | busybox-w32-a1c631278bce9da92a4e8628a946e0e91cf2e2b5.tar.gz busybox-w32-a1c631278bce9da92a4e8628a946e0e91cf2e2b5.tar.bz2 busybox-w32-a1c631278bce9da92a4e8628a946e0e91cf2e2b5.zip |
less: make '/' (regex search) scan input if no matches are found
in input taken so far.
Diffstat (limited to 'miscutils/less.c')
-rw-r--r-- | miscutils/less.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/miscutils/less.c b/miscutils/less.c index 207f5864e..31055a6c7 100644 --- a/miscutils/less.c +++ b/miscutils/less.c | |||
@@ -845,15 +845,10 @@ static void regex_process(void) | |||
845 | free(err); | 845 | free(err); |
846 | return; | 846 | return; |
847 | } | 847 | } |
848 | |||
848 | pattern_valid = 1; | 849 | pattern_valid = 1; |
849 | match_pos = 0; | 850 | match_pos = 0; |
850 | |||
851 | fill_match_lines(0); | 851 | fill_match_lines(0); |
852 | |||
853 | if (num_matches == 0 || max_fline <= max_displayed_line) { | ||
854 | buffer_print(); | ||
855 | return; | ||
856 | } | ||
857 | while (match_pos < num_matches) { | 852 | while (match_pos < num_matches) { |
858 | if (match_lines[match_pos] > cur_fline) | 853 | if (match_lines[match_pos] > cur_fline) |
859 | break; | 854 | break; |
@@ -861,8 +856,11 @@ static void regex_process(void) | |||
861 | } | 856 | } |
862 | if (option_mask32 & LESS_STATE_MATCH_BACKWARDS) | 857 | if (option_mask32 & LESS_STATE_MATCH_BACKWARDS) |
863 | match_pos--; | 858 | match_pos--; |
864 | normalize_match_pos(match_pos); | 859 | |
865 | buffer_line(match_lines[match_pos]); | 860 | /* It's possible that no matches are found yet. |
861 | * goto_match() will read input looking for match, | ||
862 | * if needed */ | ||
863 | goto_match(match_pos); | ||
866 | } | 864 | } |
867 | #endif | 865 | #endif |
868 | 866 | ||