1
0
forked from aniani/vim

updated for version 7.3.1191

Problem:    Backreference to previous line doesn't work. (Lech Lorens)
Solution:   Implement looking in another line.
This commit is contained in:
Bram Moolenaar
2013-06-14 20:31:28 +02:00
parent 6e70736cbc
commit 580abea48a
5 changed files with 113 additions and 71 deletions

View File

@@ -4367,14 +4367,27 @@ retempty:
if (sub->list.multi[subidx].start.lnum < 0
|| sub->list.multi[subidx].end.lnum < 0)
goto retempty;
/* TODO: line breaks */
len = sub->list.multi[subidx].end.col
- sub->list.multi[subidx].start.col;
if (cstrncmp(regline + sub->list.multi[subidx].start.col,
reginput, &len) == 0)
if (sub->list.multi[subidx].start.lnum == reglnum
&& sub->list.multi[subidx].end.lnum == reglnum)
{
*bytelen = len;
return TRUE;
len = sub->list.multi[subidx].end.col
- sub->list.multi[subidx].start.col;
if (cstrncmp(regline + sub->list.multi[subidx].start.col,
reginput, &len) == 0)
{
*bytelen = len;
return TRUE;
}
}
else
{
if (match_with_backref(
sub->list.multi[subidx].start.lnum,
sub->list.multi[subidx].start.col,
sub->list.multi[subidx].end.lnum,
sub->list.multi[subidx].end.col,
bytelen) == RA_MATCH)
return TRUE;
}
}
else