summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2013-06-13 20:19:40 +0200
committerBram Moolenaar <Bram@vim.org>2013-06-13 20:19:40 +0200
commitb62bcd1e05a00bdacde11c52762cd48f6f0325f0 (patch)
tree56add0003306327aa602457daf9fc028e9bff01b
parent484d241a4abb4a7e892fbb1e3afb269890526e5a (diff)
downloadvim-git-b62bcd1e05a00bdacde11c52762cd48f6f0325f0.tar.gz
updated for version 7.3.1185v7.3.1185
Problem: New regexp engine: no match with ^ after \n. (SungHyun Nam) Solution: Fix it, add a test.
-rw-r--r--src/regexp_nfa.c5
-rw-r--r--src/testdir/test64.in11
-rw-r--r--src/testdir/test64.ok2
-rw-r--r--src/version.c2
4 files changed, 18 insertions, 2 deletions
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index 780653f03..20f7aa31b 100644
--- 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))
diff --git a/src/testdir/test64.in b/src/testdir/test64.in
index 8100436f1..51cdb31e8 100644
--- 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
diff --git a/src/testdir/test64.ok b/src/testdir/test64.ok
index 8e90cb8f8..20725dde4 100644
--- a/src/testdir/test64.ok
+++ b/src/testdir/test64.ok
@@ -918,6 +918,8 @@ OK 2 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
<T="7">Ac 7</Title>
ghi
+c
+
xxstart3
thexE thE thExethe
diff --git a/src/version.c b/src/version.c
index f003bbc0a..7f315b81a 100644
--- 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,