inccommand: do not execute trailing commands #8256

fix #7494
This commit is contained in:
Nimit Bhardwaj 2018-04-11 22:16:05 +05:30 committed by Justin M. Keyes
parent fe5f38d8bd
commit 51af911a27
2 changed files with 22 additions and 0 deletions

View File

@ -603,6 +603,11 @@ int do_cmdline(char_u *cmdline, LineGetter fgetline,
cmd_getline, cmd_cookie);
recursive--;
// Ignore trailing '|'-separated commands in preview-mode ('inccommand').
if (State & CMDPREVIEW) {
next_cmdline = NULL;
}
if (cmd_cookie == (void *)&cmd_loop_cookie)
/* Use "current_line" from "cmd_loop_cookie", it may have been
* incremented when defining a function. */

View File

@ -1354,6 +1354,23 @@ describe("inccommand=nosplit", function()
:echo 'foo'^ |
]])
end)
it("does not execute trailing bar-separated commands #7494", function()
feed(':%s/two/three/g|q!')
screen:expect([[
Inc substitution on |
{12:three} lines |
Inc substitution on |
{12:three} lines |
|
{15:~ }|
{15:~ }|
{15:~ }|
{15:~ }|
:%s/two/three/g|q!^ |
]])
eq(eval('v:null'), eval('v:exiting'))
end)
end)
describe(":substitute, 'inccommand' with a failing expression", function()