From ea683da58cf9ecf3afab9d650d3d2da76e5298d3 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Fri, 9 Sep 2016 21:41:34 +0200 Subject: [PATCH] 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". --- src/search.c | 5 ++--- src/testdir/test_search.vim | 11 +++++++++++ src/version.c | 2 ++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/search.c b/src/search.c index bbda8acce..cb5caeb6d 100644 --- a/src/search.c +++ b/src/search.c @@ -1240,14 +1240,13 @@ do_search( { if (spats[RE_SEARCH].pat == NULL) /* no previous pattern */ { - pat = spats[RE_SUBST].pat; - if (pat == NULL) + searchstr = spats[RE_SUBST].pat; + if (searchstr == NULL) { EMSG(_(e_noprevre)); retval = 0; goto end_do_search; } - searchstr = pat; } else { diff --git a/src/testdir/test_search.vim b/src/testdir/test_search.vim index 9c2d61051..3b9aff4e7 100644 --- a/src/testdir/test_search.vim +++ b/src/testdir/test_search.vim @@ -268,3 +268,14 @@ func Test_search_cmdline2() call test_disable_char_avail(0) bw! endfunc + +func Test_use_sub_pat() + split + let @/ = '' + func X() + s/^/a/ + / + endfunc + call X() + bwipe! +endfunc diff --git a/src/version.c b/src/version.c index f332e43e9..baba587cb 100644 --- a/src/version.c +++ b/src/version.c @@ -763,6 +763,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2356, /**/ 2355, /**/ -- 2.50.1