Skip to content

Commit ea683da

Browse files
committed
patch 7.4.2356
Problem: Reading past end of line when using previous substitute pattern. (Dominique Pelle) Solution: Don't set "pat" only set "searchstr".
1 parent 16b3578 commit ea683da

3 files changed

Lines changed: 15 additions & 3 deletions

File tree

src/search.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1240,14 +1240,13 @@ do_search(
12401240
{
12411241
if (spats[RE_SEARCH].pat == NULL) /* no previous pattern */
12421242
{
1243-
pat = spats[RE_SUBST].pat;
1244-
if (pat == NULL)
1243+
searchstr = spats[RE_SUBST].pat;
1244+
if (searchstr == NULL)
12451245
{
12461246
EMSG(_(e_noprevre));
12471247
retval = 0;
12481248
goto end_do_search;
12491249
}
1250-
searchstr = pat;
12511250
}
12521251
else
12531252
{

src/testdir/test_search.vim

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,3 +268,14 @@ func Test_search_cmdline2()
268268
call test_disable_char_avail(0)
269269
bw!
270270
endfunc
271+
272+
func Test_use_sub_pat()
273+
split
274+
let @/ = ''
275+
func X()
276+
s/^/a/
277+
/
278+
endfunc
279+
call X()
280+
bwipe!
281+
endfunc

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -763,6 +763,8 @@ static char *(features[]) =
763763

764764
static int included_patches[] =
765765
{ /* Add new patch number below this line */
766+
/**/
767+
2356,
766768
/**/
767769
2355,
768770
/**/

0 commit comments

Comments
 (0)