updated for version 7.3.871
Problem: search('^$', 'c') does not use the empty match under the cursor.
Solution: Special handling of the 'c' flag. (Christian Brabandt)
Add tests.
diff --git a/src/search.c b/src/search.c
index fc74680..934e4b0 100644
--- a/src/search.c
+++ b/src/search.c
@@ -727,6 +727,8 @@
++matchcol;
}
}
+ if (options & SEARCH_START)
+ break;
if (ptr[matchcol] == NUL
|| (nmatched = vim_regexec_multi(®match,
win, buf, lnum + matchpos.lnum,
diff --git a/src/testdir/test14.in b/src/testdir/test14.in
index 05c8025..b6f2f57 100644
--- a/src/testdir/test14.in
+++ b/src/testdir/test14.in
@@ -2,6 +2,7 @@
Also test ":s/pat/sub/" with different ~s in sub.
Also test for ^Vxff and ^Vo123 in Insert mode.
Also test "[m", "]m", "[M" and "]M"
+Also test search()
STARTTEST
:so small.vim
@@ -34,6 +35,16 @@
2[MaJ:.w >>test.out
k[MaK:.w >>test.out
3[MaL:.w >>test.out
+:"
+/^foobar
+:let startline = line('.')
+:call search('foobar', 'c')
+:call append(line('$'), line('.') - startline)
+j:call search('^$', 'c')
+:call append(line('$'), line('.') - startline)
+:call search('^$', 'bc')
+:call append(line('$'), line('.') - startline)
+:/^search()/,$w >>test.out
:qa!
ENDTEST
@@ -64,3 +75,8 @@
}
} e3
}
+
+foobar
+
+
+search()
diff --git a/src/testdir/test14.ok b/src/testdir/test14.ok
index e893ba8..fb795a8 100644
--- a/src/testdir/test14.ok
+++ b/src/testdir/test14.ok
@@ -15,3 +15,7 @@
}JH e3
}K e2
{LF
+search()
+0
+1
+1
diff --git a/src/version.c b/src/version.c
index 7705a21..1a652ac 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 871,
+/**/
870,
/**/
869,