summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/search.c2
-rw-r--r--src/testdir/test14.in10
-rw-r--r--src/testdir/test14.ok3
-rw-r--r--src/version.c2
4 files changed, 16 insertions, 1 deletions
diff --git a/src/search.c b/src/search.c
index d97dcf6bd..e4985761a 100644
--- a/src/search.c
+++ b/src/search.c
@@ -201,7 +201,7 @@ search_regcomp(pat, pat_save, pat_use, options, regmatch)
* Save the currently used pattern in the appropriate place,
* unless the pattern should not be remembered.
*/
- if (!(options & SEARCH_KEEP))
+ if (!(options & SEARCH_KEEP) && !cmdmod.keeppatterns)
{
/* search or global command */
if (pat_save == RE_SEARCH || pat_save == RE_BOTH)
diff --git a/src/testdir/test14.in b/src/testdir/test14.in
index ebcb58c9d..e6816a3f9 100644
--- a/src/testdir/test14.in
+++ b/src/testdir/test14.in
@@ -47,6 +47,15 @@ j:call search('^$', 'c')
/two
:call search('.', 'c')
:call append(line('$'), getline('.')[col('.') - 1:])
+:"
+/^substitute
+:s/foo/bar/
+:$put =@/
+/^substitute
+:keeppatterns s/asdf/xyz/
+:$put =@/
+/^substitute
+Y:$put =@0
:/^search()/,$w >>test.out
:qa!
ENDTEST
@@ -81,6 +90,7 @@ Piece of Java
foobar
+substitute foo asdf
one two
search()
diff --git a/src/testdir/test14.ok b/src/testdir/test14.ok
index 1fd89165e..ae3da2935 100644
--- a/src/testdir/test14.ok
+++ b/src/testdir/test14.ok
@@ -20,3 +20,6 @@ search()
1
1
two
+foo
+^substitute
+substitute bar xyz
diff --git a/src/version.c b/src/version.c
index 875a8fa95..6c2c60fb0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 150,
+/**/
149,
/**/
148,