patch 8.1.0887: the 'l' flag in :subsitute is sticky
Problem: The 'l' flag in :subsitute is sticky.
Solution: Reset the flag. (Dominique Pelle, closes #3925)
diff --git a/src/testdir/test_substitute.vim b/src/testdir/test_substitute.vim
index d84daa7..0ae407d 100644
--- a/src/testdir/test_substitute.vim
+++ b/src/testdir/test_substitute.vim
@@ -107,6 +107,32 @@
endfor
endfunc
+" Test the l, p, # flags.
+func Test_substitute_flags_lp()
+ new
+ call setline(1, "abc\tdef\<C-h>ghi")
+
+ let a = execute('s/a/a/p')
+ call assert_equal("\nabc def^Hghi", a)
+
+ let a = execute('s/a/a/l')
+ call assert_equal("\nabc^Idef^Hghi$", a)
+
+ let a = execute('s/a/a/#')
+ call assert_equal("\n 1 abc def^Hghi", a)
+
+ let a = execute('s/a/a/p#')
+ call assert_equal("\n 1 abc def^Hghi", a)
+
+ let a = execute('s/a/a/l#')
+ call assert_equal("\n 1 abc^Idef^Hghi$", a)
+
+ let a = execute('s/a/a/')
+ call assert_equal("", a)
+
+ bwipe!
+endfunc
+
func Test_substitute_repeat()
" This caused an invalid memory access.
split Xfile