From: Bram Moolenaar Date: Thu, 30 May 2013 09:51:08 +0000 (+0200) Subject: updated for version 7.3.1055 X-Git-Tag: v7.3.1055 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bad704fa0478c914e1089531bc61ac78009afaec;p=thirdparty%2Fvim.git updated for version 7.3.1055 Problem: Negated collection does not match newline. Solution: Handle newline differently. (Hiroshi Shirosaki) --- diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c index bb8c982fe7..aa6c56e6aa 100644 --- a/src/regexp_nfa.c +++ b/src/regexp_nfa.c @@ -1203,13 +1203,6 @@ collection: } mb_ptr_adv(regparse); - if (extra == ADD_NL) /* \_[] also matches \n */ - { - EMIT(reg_string ? NL : NFA_NEWL); - TRY_NEG(); - EMIT_GLUE(); - } - /* skip the trailing ] */ regparse = endp; mb_ptr_adv(regparse); @@ -1219,6 +1212,14 @@ collection: EMIT(NFA_END_NEG_RANGE); EMIT(NFA_CONCAT); } + + /* \_[] also matches \n but it's not negated */ + if (extra == ADD_NL) + { + EMIT(reg_string ? NL : NFA_NEWL); + EMIT(NFA_OR); + } + return OK; } /* if exists closing ] */ diff --git a/src/testdir/test64.in b/src/testdir/test64.in index 192d456725..0c55173168 100644 --- a/src/testdir/test64.in +++ b/src/testdir/test64.in @@ -344,8 +344,12 @@ STARTTEST :call add(tl, [0, '\(<<\)\@1<=span.', 'xxspanxxxx