aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-12-22 18:11:59 -0500
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-12-22 18:15:01 -0500
commitb602fe74b075b5e3c4f095d907bed9abc98462f3 (patch)
treec1066da573559e85924cb783082917750cc9b09f /src
parent0561243771592b9d00a32fb7151592dd507c4709 (diff)
downloadrneovim-b602fe74b075b5e3c4f095d907bed9abc98462f3.tar.gz
rneovim-b602fe74b075b5e3c4f095d907bed9abc98462f3.tar.bz2
rneovim-b602fe74b075b5e3c4f095d907bed9abc98462f3.zip
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 vim/vim#7527) https://github.com/vim/vim/commit/032a2d050b82b146d70d6ff714838ee62c07d8ad N/A patches for version.c: vim-patch:8.2.2192: Codecov on github actions fails Problem: Codecov on github actions fails. Solution: Revert to codecov script. (Ozaki Kiichi, closes vim/vim#7529) https://github.com/vim/vim/commit/e5492609b3a153c631f1d600ecdef1af1c913bef
Diffstat (limited to 'src')
-rw-r--r--src/nvim/ops.c8
-rw-r--r--src/nvim/testdir/test_registers.vim11
2 files changed, 18 insertions, 1 deletions
diff --git a/src/nvim/ops.c b/src/nvim/ops.c
index 37db1bb7e2..8fddb1b561 100644
--- a/src/nvim/ops.c
+++ b/src/nvim/ops.c
@@ -1197,7 +1197,13 @@ int insert_reg(
retval = FAIL;
} else {
for (size_t i = 0; i < reg->y_size; i++) {
- stuffescaped((const char *)reg->y_array[i], literally);
+ if (regname == '-') {
+ AppendCharToRedobuff(Ctrl_R);
+ AppendCharToRedobuff(regname);
+ do_put(regname, NULL, BACKWARD, 1L, PUT_CURSEND);
+ } else {
+ stuffescaped((const char *)reg->y_array[i], literally);
+ }
// Insert a newline between lines and after last line if
// y_type is kMTLineWise.
if (reg->y_type == kMTLineWise || i < reg->y_size - 1) {
diff --git a/src/nvim/testdir/test_registers.vim b/src/nvim/testdir/test_registers.vim
index 19a7c6c9d0..24e02cb385 100644
--- a/src/nvim/testdir/test_registers.vim
+++ b/src/nvim/testdir/test_registers.vim
@@ -254,4 +254,15 @@ func Test_ve_blockpaste()
bwipe!
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