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)
diff --git a/src/ops.c b/src/ops.c
index 53bd084..d8e96ff 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -9,7 +9,7 @@
 
 /*
  * 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"
diff --git a/src/register.c b/src/register.c
index 6574432..56b6cad 100644
--- a/src/register.c
+++ b/src/register.c
@@ -809,7 +809,14 @@
 	{
 	    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
 		// y_type is MLINE.
 		if (y_current->y_type == MLINE || i < y_current->y_size - 1)
diff --git a/src/testdir/test_registers.vim b/src/testdir/test_registers.vim
index 521f8ad..14febad 100644
--- a/src/testdir/test_registers.vim
+++ b/src/testdir/test_registers.vim
@@ -698,4 +698,15 @@
   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
diff --git a/src/version.c b/src/version.c
index d6eaf8d..65dfcdf 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2189,
+/**/
     2188,
 /**/
     2187,