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)
|
static void match_right_bracket(char bracket)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i = cur_fline;
|
||||||
|
|
||||||
if (cur_fline >= max_fline
|
if (i >= max_fline
|
||||||
|| strchr(flines[cur_fline], bracket) == NULL
|
|| strchr(flines[i], bracket) == NULL
|
||||||
) {
|
) {
|
||||||
print_statusline("No bracket in top line");
|
print_statusline("No bracket in top line");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
bracket = opp_bracket(bracket);
|
bracket = opp_bracket(bracket);
|
||||||
for (i = cur_fline + 1; i < max_fline; i++) {
|
for (; i < max_fline; i++) {
|
||||||
if (strchr(flines[i], bracket) != NULL) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1609,18 +1614,22 @@ static void match_right_bracket(char bracket)
|
|||||||
|
|
||||||
static void match_left_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
|
if (i >= max_fline
|
||||||
|| strchr(flines[cur_fline + max_displayed_line], bracket) == NULL
|
|| strchr(flines[i], bracket) == NULL
|
||||||
) {
|
) {
|
||||||
print_statusline("No bracket in bottom line");
|
print_statusline("No bracket in bottom line");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
bracket = opp_bracket(bracket);
|
bracket = opp_bracket(bracket);
|
||||||
for (i = cur_fline + max_displayed_line; i >= 0; i--) {
|
for (; i >= 0; i--) {
|
||||||
if (strchr(flines[i], bracket) != NULL) {
|
if (strchr(flines[i], bracket) != NULL) {
|
||||||
|
/*
|
||||||
|
* Line with matched left bracket becomes
|
||||||
|
* first visible line
|
||||||
|
*/
|
||||||
buffer_line(i);
|
buffer_line(i);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user