]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.0651: ex: trailing dot is optional for :g and :insert/:append v9.1.0651
authorMohamed Akram <mohd.akram@outlook.com>
Thu, 1 Aug 2024 20:53:01 +0000 (22:53 +0200)
committerChristian Brabandt <cb@256bit.org>
Thu, 1 Aug 2024 20:53:01 +0000 (22:53 +0200)
Problem:  ex: trailing dot is optional for :g and :insert/:append
Solution: don't break out early, when the next command is empty.
          (Mohamed Akram)

The terminating period is optional for the last command in a global
command list.

closes: #15407

Signed-off-by: Mohamed Akram <mohd.akram@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
src/ex_cmds.c
src/testdir/test_ex_mode.vim
src/version.c

index c365937983667477c8e6664225cee61ba242fbbd..4793737560b330aa8214c5e91ed7490210e03643 100644 (file)
@@ -3370,7 +3370,7 @@ ex_append(exarg_T *eap)
        {
            // No getline() function, use the lines that follow. This ends
            // when there is no more.
-           if (eap->nextcmd == NULL || *eap->nextcmd == NUL)
+           if (eap->nextcmd == NULL)
                break;
            p = vim_strchr(eap->nextcmd, NL);
            if (p == NULL)
@@ -3378,6 +3378,8 @@ ex_append(exarg_T *eap)
            theline = vim_strnsave(eap->nextcmd, p - eap->nextcmd);
            if (*p != NUL)
                ++p;
+           else
+               p = NULL;
            eap->nextcmd = p;
        }
        else
index a1ec15d7e252daf2c4f5d4336191160362f58d64..aa949355f41fcddbbc3e62406da21f65304b7b72 100644 (file)
@@ -378,4 +378,13 @@ func Test_insert_after_trailing_bar()
   bwipe!
 endfunc
 
+" Test global insert of a newline without terminating period
+func Test_global_insert_newline()
+  new
+  call setline(1, ['foo'])
+  call feedkeys("Qg/foo/i\\\n", "xt")
+  call assert_equal(['', 'foo'], getline(1, '$'))
+  bwipe!
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
index c8527db604cbe700094942a9e157d9b4a7d63c32..07622ac3d61112155627adfcd21210cc8e770f20 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    651,
 /**/
     650,
 /**/