updated for version 7.3.877
Problem: Forward searching with search() is broken. Solution: Fix it and add tests. (Sung Pae)
This commit is contained in:
@ -727,7 +727,7 @@ searchit(win, buf, pos, dir, pat, count, options, pat_use, stop_lnum, tm)
|
||||
++matchcol;
|
||||
}
|
||||
}
|
||||
if (options & SEARCH_START)
|
||||
if (matchcol == 0 && (options & SEARCH_START))
|
||||
break;
|
||||
if (ptr[matchcol] == NUL
|
||||
|| (nmatched = vim_regexec_multi(®match,
|
||||
@ -869,7 +869,7 @@ searchit(win, buf, pos, dir, pat, count, options, pat_use, stop_lnum, tm)
|
||||
/* With the SEARCH_END option move to the last character
|
||||
* of the match. Don't do it for an empty match, end
|
||||
* should be same as start then. */
|
||||
if (options & SEARCH_END && !(options & SEARCH_NOOF)
|
||||
if ((options & SEARCH_END) && !(options & SEARCH_NOOF)
|
||||
&& !(matchpos.lnum == endpos.lnum
|
||||
&& matchpos.col == endpos.col))
|
||||
{
|
||||
|
||||
@ -44,6 +44,9 @@ j:call search('^$', 'c')
|
||||
:call append(line('$'), line('.') - startline)
|
||||
:call search('^$', 'bc')
|
||||
:call append(line('$'), line('.') - startline)
|
||||
/two
|
||||
:call search('.', 'c')
|
||||
:call append(line('$'), getline('.')[col('.') - 1:])
|
||||
:/^search()/,$w >>test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
@ -79,4 +82,5 @@ Piece of Java
|
||||
foobar
|
||||
|
||||
|
||||
one two
|
||||
search()
|
||||
|
||||
@ -19,3 +19,4 @@ search()
|
||||
0
|
||||
1
|
||||
1
|
||||
two
|
||||
|
||||
@ -728,6 +728,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
877,
|
||||
/**/
|
||||
876,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user