changeset 4879:6d935f45c489 v7.3.1185

updated for version 7.3.1185 Problem: New regexp engine: no match with ^ after \n. (SungHyun Nam) Solution: Fix it, add a test.
author Bram Moolenaar <bram@vim.org>
date Thu, 13 Jun 2013 20:19:40 +0200
parents 4c6f21f1cc92
children 2f84443f9502
files src/regexp_nfa.c src/testdir/test64.in src/testdir/test64.ok src/version.c
diffstat 4 files changed, 18 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -3936,9 +3936,10 @@ addstate(l, state, subs, pim, off)
 	case NFA_BOL:
 	case NFA_BOF:
 	    /* "^" won't match past end-of-line, don't bother trying.
-	     * Except when we are going to the next line for a look-behind
-	     * match. */
+	     * Except when at the end of the line, or when we are going to the
+	     * next line for a look-behind match. */
 	    if (reginput > regline
+		    && *reginput != NUL
 		    && (nfa_endp == NULL
 			|| !REG_MULTI
 			|| reglnum == nfa_endp->se_u.pos.lnum))
--- a/src/testdir/test64.in
+++ b/src/testdir/test64.in
@@ -480,6 +480,12 @@ Gop:"
 :.yank
 y$Gop:"
 :"
+:" Check a pattern with a line break and ^ and $
+/^Abc:
+/a\n^b$\n^c/e
+:.yank
+Gop:"
+:"
 :" Check a pattern with a look beind crossing a line boundary
 /^Behind:
 /\(<\_[xy]\+\)\@3<=start
@@ -555,6 +561,11 @@ ghi
 xjk
 lmn
 
+Abc:
+a
+b
+c
+
 Behind:
 asdfasd<yyy
 xxstart1
--- a/src/testdir/test64.ok
+++ b/src/testdir/test64.ok
@@ -918,6 +918,8 @@ 192.168.0.1
 <T="7">Ac 7</Title>
 ghi
 
+c
+
 xxstart3
 
 thexE thE thExethe
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1185,
+/**/
     1184,
 /**/
     1183,