less: fix bracket search to match behavior of less 481
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
252559601f
commit
110c6bb413
@ -1589,18 +1589,23 @@ static char opp_bracket(char bracket)
|
||||
|
||||
static void match_right_bracket(char bracket)
|
||||
{
|
||||
unsigned i;
|
||||
unsigned i = cur_fline;
|
||||
|
||||
if (cur_fline >= max_fline
|
||||
|| strchr(flines[cur_fline], bracket) == NULL
|
||||
if (i >= max_fline
|
||||
|| strchr(flines[i], bracket) == NULL
|
||||
) {
|
||||
print_statusline("No bracket in top line");
|
||||
return;
|
||||
}
|
||||
|
||||
bracket = opp_bracket(bracket);
|
||||
for (i = cur_fline + 1; i < max_fline; i++) {
|
||||
for (; i < max_fline; i++) {
|
||||
if (strchr(flines[i], bracket) != NULL) {
|
||||
buffer_line(i);
|
||||
/*
|
||||
* Line with matched right bracket becomes
|
||||
* last visible line
|
||||
*/
|
||||
buffer_line(i - max_displayed_line);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -1609,18 +1614,22 @@ static void match_right_bracket(char bracket)
|
||||
|
||||
static void match_left_bracket(char bracket)
|
||||
{
|
||||
int i;
|
||||
int i = cur_fline + max_displayed_line;
|
||||
|
||||
if (cur_fline + max_displayed_line >= max_fline
|
||||
|| strchr(flines[cur_fline + max_displayed_line], bracket) == NULL
|
||||
if (i >= max_fline
|
||||
|| strchr(flines[i], bracket) == NULL
|
||||
) {
|
||||
print_statusline("No bracket in bottom line");
|
||||
return;
|
||||
}
|
||||
|
||||
bracket = opp_bracket(bracket);
|
||||
for (i = cur_fline + max_displayed_line; i >= 0; i--) {
|
||||
for (; i >= 0; i--) {
|
||||
if (strchr(flines[i], bracket) != NULL) {
|
||||
/*
|
||||
* Line with matched left bracket becomes
|
||||
* first visible line
|
||||
*/
|
||||
buffer_line(i);
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user