0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 9.0.1521: failing redo of command with control characters

Problem:    Failing redo of command with control characters.
Solution:   Use AppendToRedobuffLit() for colon commands. (closes #12354)
This commit is contained in:
zeertzjq
2023-05-07 17:39:23 +01:00
committed by Bram Moolenaar
parent 048d9d2521
commit 30b6d6104c
4 changed files with 34 additions and 5 deletions

View File

@@ -43,8 +43,8 @@ static buffheader_T recordbuff = {{NULL, {NUL}}, NULL, 0, 0};
static int typeahead_char = 0; // typeahead char that's not flushed
/*
* when block_redo is TRUE redo buffer will not be changed
* used by edit() to repeat insertions and 'V' command for redoing
* When block_redo is TRUE the redo buffer will not be changed.
* Used by edit() to repeat insertions.
*/
static int block_redo = FALSE;
@@ -609,11 +609,14 @@ AppendToRedobuffLit(
void
AppendToRedobuffSpec(char_u *s)
{
if (block_redo)
return;
while (*s != NUL)
{
if (*s == K_SPECIAL && s[1] != NUL && s[2] != NUL)
{
// insert special key literally
// Insert special key literally.
add_buff(&redobuff, s, 3L);
s += 3;
}