patch 8.1.0999: use register one too often and not properly tested
Problem: Use register one too often and not properly tested.
Solution: Do not always use register one when specifying a register.
(closes #4085) Add more tests.
diff --git a/src/ops.c b/src/ops.c
index 02c985a..3353cf9 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -1747,7 +1747,6 @@
struct block_def bd;
linenr_T old_lcount = curbuf->b_ml.ml_line_count;
int did_yank = FALSE;
- int orig_regname = oap->regname;
if (curbuf->b_ml.ml_flags & ML_EMPTY) /* nothing to do */
return OK;
@@ -1833,12 +1832,13 @@
/*
* Put deleted text into register 1 and shift number registers if the
- * delete contains a line break, or when a regname has been specified.
+ * delete contains a line break, or when using a specific operator (Vi
+ * compatible)
* Use the register name from before adjust_clip_reg() may have
* changed it.
*/
- if (orig_regname != 0 || oap->motion_type == MLINE
- || oap->line_count > 1 || oap->use_reg_one)
+ if (oap->motion_type == MLINE || oap->line_count > 1
+ || oap->use_reg_one)
{
shift_delete_registers();
if (op_yank(oap, TRUE, FALSE) == OK)