forked from aniani/vim
updated for version 7.3.1083
Problem: New regexp engine: Does not support \%^ and \%$. Solution: Support matching start and end of file.
This commit is contained in:
@@ -865,14 +865,10 @@ nfa_regatom()
|
|||||||
* pattern -- regardless of whether or not it makes sense. */
|
* pattern -- regardless of whether or not it makes sense. */
|
||||||
case '^':
|
case '^':
|
||||||
EMIT(NFA_BOF);
|
EMIT(NFA_BOF);
|
||||||
/* TODO: Not yet supported */
|
|
||||||
return FAIL;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '$':
|
case '$':
|
||||||
EMIT(NFA_EOF);
|
EMIT(NFA_EOF);
|
||||||
/* TODO: Not yet supported */
|
|
||||||
return FAIL;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '#':
|
case '#':
|
||||||
@@ -1780,6 +1776,8 @@ nfa_set_code(c)
|
|||||||
case NFA_BOL: STRCPY(code, "NFA_BOL "); break;
|
case NFA_BOL: STRCPY(code, "NFA_BOL "); break;
|
||||||
case NFA_EOW: STRCPY(code, "NFA_EOW "); break;
|
case NFA_EOW: STRCPY(code, "NFA_EOW "); break;
|
||||||
case NFA_BOW: STRCPY(code, "NFA_BOW "); break;
|
case NFA_BOW: STRCPY(code, "NFA_BOW "); break;
|
||||||
|
case NFA_EOF: STRCPY(code, "NFA_EOF "); break;
|
||||||
|
case NFA_BOF: STRCPY(code, "NFA_BOF "); break;
|
||||||
case NFA_STAR: STRCPY(code, "NFA_STAR "); break;
|
case NFA_STAR: STRCPY(code, "NFA_STAR "); break;
|
||||||
case NFA_PLUS: STRCPY(code, "NFA_PLUS "); break;
|
case NFA_PLUS: STRCPY(code, "NFA_PLUS "); break;
|
||||||
case NFA_NOT: STRCPY(code, "NFA_NOT "); break;
|
case NFA_NOT: STRCPY(code, "NFA_NOT "); break;
|
||||||
@@ -3705,6 +3703,17 @@ nfa_regmatch(start, submatch, m)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case NFA_BOF:
|
||||||
|
if (reglnum == 0 && reginput == regline
|
||||||
|
&& (!REG_MULTI || reg_firstlnum == 1))
|
||||||
|
addstate_here(thislist, t->state->out, &t->sub, &listidx);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NFA_EOF:
|
||||||
|
if (reglnum == reg_maxline && curc == NUL)
|
||||||
|
addstate_here(thislist, t->state->out, &t->sub, &listidx);
|
||||||
|
break;
|
||||||
|
|
||||||
#ifdef FEAT_MBYTE
|
#ifdef FEAT_MBYTE
|
||||||
case NFA_COMPOSING:
|
case NFA_COMPOSING:
|
||||||
{
|
{
|
||||||
|
@@ -267,6 +267,15 @@ STARTTEST
|
|||||||
:call add(tl, [2, '\_f', " \na ", "\n"])
|
:call add(tl, [2, '\_f', " \na ", "\n"])
|
||||||
:call add(tl, [2, '\_f\+', " \na ", "\na"])
|
:call add(tl, [2, '\_f\+', " \na ", "\na"])
|
||||||
:"
|
:"
|
||||||
|
:"""" Test start/end of line, start/end of file
|
||||||
|
:call add(tl, [2, '^a.', "a_\nb ", "a_"])
|
||||||
|
:call add(tl, [2, '^a.', "b a \na_"])
|
||||||
|
:call add(tl, [2, '.a$', " a\n "])
|
||||||
|
:call add(tl, [2, '.a$', " a b\n_a", "_a"])
|
||||||
|
:call add(tl, [2, '\%^a.', "a a\na", "a "])
|
||||||
|
:call add(tl, [2, '\%^a', " a \na "])
|
||||||
|
:call add(tl, [2, '.a\%$', " a\n "])
|
||||||
|
:call add(tl, [2, '.a\%$', " a\n_a", "_a"])
|
||||||
:"
|
:"
|
||||||
:"""" Test recognition of some character classes
|
:"""" Test recognition of some character classes
|
||||||
:call add(tl, [2, '[0-9]', '8', '8'])
|
:call add(tl, [2, '[0-9]', '8', '8'])
|
||||||
@@ -466,6 +475,15 @@ o-2-:set re=2
|
|||||||
:call Postest()
|
:call Postest()
|
||||||
:put
|
:put
|
||||||
:"
|
:"
|
||||||
|
:" start and end of buffer
|
||||||
|
/\%^
|
||||||
|
yeGop:"
|
||||||
|
50%/\%^..
|
||||||
|
yeGopA END:"
|
||||||
|
50%/\%$
|
||||||
|
"ayb20gg/..\%$
|
||||||
|
"bybGo"apo"bp:"
|
||||||
|
:"
|
||||||
:/\%#=1^Results/,$wq! test.out
|
:/\%#=1^Results/,$wq! test.out
|
||||||
ENDTEST
|
ENDTEST
|
||||||
|
|
||||||
|
@@ -585,6 +585,30 @@ OK 2 - \_f
|
|||||||
OK 0 - \_f\+
|
OK 0 - \_f\+
|
||||||
OK 1 - \_f\+
|
OK 1 - \_f\+
|
||||||
OK 2 - \_f\+
|
OK 2 - \_f\+
|
||||||
|
OK 0 - ^a.
|
||||||
|
OK 1 - ^a.
|
||||||
|
OK 2 - ^a.
|
||||||
|
OK 0 - ^a.
|
||||||
|
OK 1 - ^a.
|
||||||
|
OK 2 - ^a.
|
||||||
|
OK 0 - .a$
|
||||||
|
OK 1 - .a$
|
||||||
|
OK 2 - .a$
|
||||||
|
OK 0 - .a$
|
||||||
|
OK 1 - .a$
|
||||||
|
OK 2 - .a$
|
||||||
|
OK 0 - \%^a.
|
||||||
|
OK 1 - \%^a.
|
||||||
|
OK 2 - \%^a.
|
||||||
|
OK 0 - \%^a
|
||||||
|
OK 1 - \%^a
|
||||||
|
OK 2 - \%^a
|
||||||
|
OK 0 - .a\%$
|
||||||
|
OK 1 - .a\%$
|
||||||
|
OK 2 - .a\%$
|
||||||
|
OK 0 - .a\%$
|
||||||
|
OK 1 - .a\%$
|
||||||
|
OK 2 - .a\%$
|
||||||
OK 0 - [0-9]
|
OK 0 - [0-9]
|
||||||
OK 1 - [0-9]
|
OK 1 - [0-9]
|
||||||
OK 2 - [0-9]
|
OK 2 - [0-9]
|
||||||
@@ -818,3 +842,7 @@ moooooo
|
|||||||
ab!babababababfoo
|
ab!babababababfoo
|
||||||
ba!ab##abab?bafoo
|
ba!ab##abab?bafoo
|
||||||
**!*****_
|
**!*****_
|
||||||
|
Test
|
||||||
|
Test END
|
||||||
|
EN
|
||||||
|
E
|
||||||
|
@@ -728,6 +728,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 */
|
||||||
|
/**/
|
||||||
|
1083,
|
||||||
/**/
|
/**/
|
||||||
1082,
|
1082,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user