mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:9.0.0815
9c50eeb401
Co-authored-by: Martin Tournoij <martin@arp242.net>
This commit is contained in:
parent
5b77dde8dd
commit
187ba3efce
@ -988,6 +988,8 @@ void do_bang(int addr_count, exarg_T *eap, bool forceit, bool do_in, bool do_out
|
|||||||
}
|
}
|
||||||
if (ins_prevcmd) {
|
if (ins_prevcmd) {
|
||||||
STRCAT(t, prevcmd);
|
STRCAT(t, prevcmd);
|
||||||
|
} else {
|
||||||
|
xfree(t);
|
||||||
}
|
}
|
||||||
p = t + strlen(t);
|
p = t + strlen(t);
|
||||||
STRCAT(t, trailarg);
|
STRCAT(t, trailarg);
|
||||||
@ -1012,16 +1014,12 @@ void do_bang(int addr_count, exarg_T *eap, bool forceit, bool do_in, bool do_out
|
|||||||
}
|
}
|
||||||
} while (trailarg != NULL);
|
} while (trailarg != NULL);
|
||||||
|
|
||||||
// Don't do anything if there is no command as there isn't really anything
|
// Don't clear "prevcmd" if there is no command to run.
|
||||||
// useful in running "sh -c ''". Avoids changing "prevcmd".
|
if (strlen(newcmd) > 0) {
|
||||||
if (strlen(newcmd) == 0) {
|
xfree(prevcmd);
|
||||||
xfree(newcmd);
|
prevcmd = newcmd;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
xfree(prevcmd);
|
|
||||||
prevcmd = newcmd;
|
|
||||||
|
|
||||||
if (bangredo) { // put cmd in redo buffer for ! command
|
if (bangredo) { // put cmd in redo buffer for ! command
|
||||||
// If % or # appears in the command, it must have been escaped.
|
// If % or # appears in the command, it must have been escaped.
|
||||||
// Reescape them, so that redoing them does not substitute them by the
|
// Reescape them, so that redoing them does not substitute them by the
|
||||||
|
@ -223,8 +223,8 @@ func Test_shell_repeat()
|
|||||||
call assert_equal(['Cmd: [-c echo coconut]'], readfile('Xlog'))
|
call assert_equal(['Cmd: [-c echo coconut]'], readfile('Xlog'))
|
||||||
|
|
||||||
call writefile(['empty'], 'Xlog')
|
call writefile(['empty'], 'Xlog')
|
||||||
call feedkeys(":!\<CR>", 'xt') " :! is a no-op
|
call feedkeys(":!\<CR>", 'xt') " :!
|
||||||
call assert_equal(['empty'], readfile('Xlog'))
|
call assert_equal(['Cmd: [-c ]'], readfile('Xlog'))
|
||||||
|
|
||||||
call feedkeys(":!!\<CR>", 'xt') " :! doesn't clear previous command
|
call feedkeys(":!!\<CR>", 'xt') " :! doesn't clear previous command
|
||||||
call assert_equal(['Cmd: [-c echo coconut]'], readfile('Xlog'))
|
call assert_equal(['Cmd: [-c echo coconut]'], readfile('Xlog'))
|
||||||
|
Loading…
Reference in New Issue
Block a user