changeset 4240:d52c45b35fb0 v7.3.871

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.
author Bram Moolenaar <bram@vim.org>
date Tue, 19 Mar 2013 15:27:48 +0100
parents a13087030831
children bd0fbce6a988
files src/search.c src/testdir/test14.in src/testdir/test14.ok src/version.c
diffstat 4 files changed, 24 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/search.c
+++ b/src/search.c
@@ -727,6 +727,8 @@ searchit(win, buf, pos, dir, pat, count,
 					++matchcol;
 				}
 			    }
+			    if (options & SEARCH_START)
+				break;
 			    if (ptr[matchcol] == NUL
 				    || (nmatched = vim_regexec_multi(&regmatch,
 					      win, buf, lnum + matchpos.lnum,
--- a/src/testdir/test14.in
+++ b/src/testdir/test14.in
@@ -2,6 +2,7 @@ Tests for "vaBiB", end could be wrong.
 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 @@ j2]MaH:.w >>test.out
 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 @@ Piece of Java
 		}
 	} e3
 }
+
+foobar
+
+
+search()
--- a/src/testdir/test14.ok
+++ b/src/testdir/test14.ok
@@ -15,3 +15,7 @@ ABC !ag8
 	}JH e3
 	}K e2
 {LF
+search()
+0
+1
+1
--- 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 */
 /**/
+    871,
+/**/
     870,
 /**/
     869,