]> granicus.if.org Git - vim/commitdiff
patch 8.1.0887: the 'l' flag in :subsitute is sticky v8.1.0887
authorBram Moolenaar <Bram@vim.org>
Sun, 10 Feb 2019 20:55:26 +0000 (21:55 +0100)
committerBram Moolenaar <Bram@vim.org>
Sun, 10 Feb 2019 20:55:26 +0000 (21:55 +0100)
Problem:    The 'l' flag in :subsitute is sticky.
Solution:   Reset the flag. (Dominique Pelle, closes #3925)

src/ex_cmds.c
src/testdir/test_substitute.vim
src/version.c

index 681ef422a9d3836c360964becc595632630c7ee5..abb5f7096f983d2d806bb32fead1eb141750907f 100644 (file)
@@ -2098,7 +2098,7 @@ write_viminfo(char_u *file, int forceit)
                        fp_out = NULL;
 # ifdef EEXIST
                        /* Avoid trying lots of names while the problem is lack
-                        * of premission, only retry if the file already
+                        * of permission, only retry if the file already
                         * exists. */
                        if (errno != EEXIST)
                            break;
@@ -5040,6 +5040,7 @@ do_sub(exarg_T *eap)
        }
        subflags.do_error = TRUE;
        subflags.do_print = FALSE;
+       subflags.do_list = FALSE;
        subflags.do_count = FALSE;
        subflags.do_number = FALSE;
        subflags.do_ic = 0;
index d84daa72121590e41d0e342e267ac4e11d80f01c..0ae407d8af3f3210588d9065889418c141542d05 100644 (file)
@@ -107,6 +107,32 @@ func Test_substitute_variants()
   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
index aa17e0afa3b9e03fde39daccf5594dfb9360810d..94825f826d5d3ebf7ee308ba500a025c4f049097 100644 (file)
@@ -783,6 +783,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    887,
 /**/
     886,
 /**/