diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-09-09 21:41:34 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-09-09 21:41:34 +0200 |
commit | ea683da58cf9ecf3afab9d650d3d2da76e5298d3 (patch) | |
tree | 7e022beea3b46caf8ba23e2b1b290a412eedac1b /src | |
parent | 16b3578f355282846f2600ce77fb344950f0b9ce (diff) | |
download | vim-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.c | 5 | ||||
-rw-r--r-- | src/testdir/test_search.vim | 11 | ||||
-rw-r--r-- | 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 @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2356, +/**/ 2355, /**/ 2354, |