vim-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 vim/vim#4085)  Add more tests.
9d7fdd403a
This commit is contained in:
zeertzjq
2022-02-23 11:12:30 +08:00
parent f6d507f5ba
commit 5ac30eacf4
3 changed files with 98 additions and 13 deletions

View File

@@ -1582,12 +1582,10 @@ int op_delete(oparg_T *oap)
did_yank = true;
}
/*
* Put deleted text into register 1 and shift number registers if the
* delete contains a line break, or when a regname has been specified.
*/
if (oap->regname != 0 || oap->motion_type == kMTLineWise
|| oap->line_count > 1 || oap->use_reg_one) {
// Put deleted text into register 1 and shift number registers if the
// delete contains a line break, or when using a specific operator (Vi
// compatible)
if (oap->motion_type == kMTLineWise || oap->line_count > 1 || oap->use_reg_one) {
shift_delete_registers(is_append_register(oap->regname));
reg = &y_regs[1];
op_yank_reg(oap, false, reg, false);