1
0
forked from aniani/vim

patch 8.2.2189: cannot repeat a command that uses the small delete register

Problem:    Cannot repeat a command that uses the small delete register.
Solution:   Store the register name instead of the contents. (Christian
            Brabandt, closes #7527)
This commit is contained in:
Bram Moolenaar 2020-12-22 17:59:35 +01:00
parent cd45ed03bf
commit 032a2d050b
4 changed files with 22 additions and 2 deletions

View File

@ -9,7 +9,7 @@
/* /*
* ops.c: implementation of various operators: op_shift, op_delete, op_tilde, * ops.c: implementation of various operators: op_shift, op_delete, op_tilde,
* op_change, op_yank, do_put, do_join * op_change, op_yank, do_join
*/ */
#include "vim.h" #include "vim.h"

View File

@ -809,7 +809,14 @@ insert_reg(
{ {
for (i = 0; i < y_current->y_size; ++i) for (i = 0; i < y_current->y_size; ++i)
{ {
stuffescaped(y_current->y_array[i], literally); if (regname == '-')
{
AppendCharToRedobuff(Ctrl_R);
AppendCharToRedobuff(regname);
do_put(regname, NULL, BACKWARD, 1L, PUT_CURSEND);
}
else
stuffescaped(y_current->y_array[i], literally);
// Insert a newline between lines and after last line if // Insert a newline between lines and after last line if
// y_type is MLINE. // y_type is MLINE.
if (y_current->y_type == MLINE || i < y_current->y_size - 1) if (y_current->y_type == MLINE || i < y_current->y_size - 1)

View File

@ -698,4 +698,15 @@ func Test_ve_blockpaste()
bwipe! bwipe!
endfunc endfunc
func Test_insert_small_delete()
new
call setline(1, ['foo foobar bar'])
call cursor(1,1)
exe ":norm! ciw'\<C-R>-'"
call assert_equal(getline(1), "'foo' foobar bar")
exe ":norm! w.w."
call assert_equal(getline(1), "'foo' 'foobar' 'bar'")
bwipe!
endfunc
" vim: shiftwidth=2 sts=2 expandtab " vim: shiftwidth=2 sts=2 expandtab

View File

@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
2189,
/**/ /**/
2188, 2188,
/**/ /**/