aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2019-03-27 21:30:18 -0400
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2019-03-27 21:32:51 -0400
commit2894d04b19cb84b312bd9b2f88e327a0a6bae303 (patch)
treefd9e2db91687eb5fe42e16b680f90b548ba02a66
parent2470c88291ef1e4db6b49fd1adf17bc7fb6ecd39 (diff)
downloadrneovim-2894d04b19cb84b312bd9b2f88e327a0a6bae303.tar.gz
rneovim-2894d04b19cb84b312bd9b2f88e327a0a6bae303.tar.bz2
rneovim-2894d04b19cb84b312bd9b2f88e327a0a6bae303.zip
vim-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 vim/vim#3925) https://github.com/vim/vim/commit/9474716d39764ac5642e55b5548580cf53bd9bed
-rw-r--r--src/nvim/ex_cmds.c1
-rw-r--r--src/nvim/testdir/test_substitute.vim26
2 files changed, 27 insertions, 0 deletions
diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c
index 4356767cc9..dd9f8203c1 100644
--- a/src/nvim/ex_cmds.c
+++ b/src/nvim/ex_cmds.c
@@ -3181,6 +3181,7 @@ static char_u *sub_parse_flags(char_u *cmd, subflags_T *subflags,
subflags->do_ask = false;
subflags->do_error = true;
subflags->do_print = false;
+ subflags->do_list = false;
subflags->do_count = false;
subflags->do_number = false;
subflags->do_ic = kSubHonorOptions;
diff --git a/src/nvim/testdir/test_substitute.vim b/src/nvim/testdir/test_substitute.vim
index d02454fbf0..fb31f5779d 100644
--- a/src/nvim/testdir/test_substitute.vim
+++ b/src/nvim/testdir/test_substitute.vim
@@ -107,6 +107,32 @@ function! Test_substitute_variants()
endfor
endfunction
+" 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