summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-09-09 21:41:34 +0200
committerBram Moolenaar <Bram@vim.org>2016-09-09 21:41:34 +0200
commitea683da58cf9ecf3afab9d650d3d2da76e5298d3 (patch)
tree7e022beea3b46caf8ba23e2b1b290a412eedac1b /src
parent16b3578f355282846f2600ce77fb344950f0b9ce (diff)
downloadvim-git-ea683da58cf9ecf3afab9d650d3d2da76e5298d3.tar.gz
patch 7.4.2356v7.4.2356
Problem: Reading past end of line when using previous substitute pattern. (Dominique Pelle) Solution: Don't set "pat" only set "searchstr".
Diffstat (limited to 'src')
-rw-r--r--src/search.c5
-rw-r--r--src/testdir/test_search.vim11
-rw-r--r--src/version.c2
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
@@ -764,6 +764,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2356,
+/**/
2355,
/**/
2354,