forked from aniani/vim
updated for version 7.1-315
This commit is contained in:
48
src/regexp.c
48
src/regexp.c
@@ -3044,6 +3044,7 @@ typedef struct regbehind_S
|
|||||||
{
|
{
|
||||||
regsave_T save_after;
|
regsave_T save_after;
|
||||||
regsave_T save_behind;
|
regsave_T save_behind;
|
||||||
|
int save_need_clear_subexpr;
|
||||||
save_se_T save_start[NSUBEXP];
|
save_se_T save_start[NSUBEXP];
|
||||||
save_se_T save_end[NSUBEXP];
|
save_se_T save_end[NSUBEXP];
|
||||||
} regbehind_T;
|
} regbehind_T;
|
||||||
@@ -5858,17 +5859,23 @@ save_subexpr(bp)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < NSUBEXP; ++i)
|
/* When "need_clear_subexpr" is set we don't need to save the values, only
|
||||||
|
* remember that this flag needs to be set again when restoring. */
|
||||||
|
bp->save_need_clear_subexpr = need_clear_subexpr;
|
||||||
|
if (!need_clear_subexpr)
|
||||||
{
|
{
|
||||||
if (REG_MULTI)
|
for (i = 0; i < NSUBEXP; ++i)
|
||||||
{
|
{
|
||||||
bp->save_start[i].se_u.pos = reg_startpos[i];
|
if (REG_MULTI)
|
||||||
bp->save_end[i].se_u.pos = reg_endpos[i];
|
{
|
||||||
}
|
bp->save_start[i].se_u.pos = reg_startpos[i];
|
||||||
else
|
bp->save_end[i].se_u.pos = reg_endpos[i];
|
||||||
{
|
}
|
||||||
bp->save_start[i].se_u.ptr = reg_startp[i];
|
else
|
||||||
bp->save_end[i].se_u.ptr = reg_endp[i];
|
{
|
||||||
|
bp->save_start[i].se_u.ptr = reg_startp[i];
|
||||||
|
bp->save_end[i].se_u.ptr = reg_endp[i];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5882,17 +5889,22 @@ restore_subexpr(bp)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < NSUBEXP; ++i)
|
/* Only need to restore saved values when they are not to be cleared. */
|
||||||
|
need_clear_subexpr = bp->save_need_clear_subexpr;
|
||||||
|
if (!need_clear_subexpr)
|
||||||
{
|
{
|
||||||
if (REG_MULTI)
|
for (i = 0; i < NSUBEXP; ++i)
|
||||||
{
|
{
|
||||||
reg_startpos[i] = bp->save_start[i].se_u.pos;
|
if (REG_MULTI)
|
||||||
reg_endpos[i] = bp->save_end[i].se_u.pos;
|
{
|
||||||
}
|
reg_startpos[i] = bp->save_start[i].se_u.pos;
|
||||||
else
|
reg_endpos[i] = bp->save_end[i].se_u.pos;
|
||||||
{
|
}
|
||||||
reg_startp[i] = bp->save_start[i].se_u.ptr;
|
else
|
||||||
reg_endp[i] = bp->save_end[i].se_u.ptr;
|
{
|
||||||
|
reg_startp[i] = bp->save_start[i].se_u.ptr;
|
||||||
|
reg_endp[i] = bp->save_end[i].se_u.ptr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -666,6 +666,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
315,
|
||||||
/**/
|
/**/
|
||||||
314,
|
314,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user