mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.0.0303: shift_delete_registers() #10868
Problem: Bracketed paste does not work in Visual mode.
Solution: Delete the text before pasting
a1891848d9
This commit is contained in:
parent
82d52b229d
commit
1d59575450
@ -1323,6 +1323,19 @@ bool cmdline_paste_reg(int regname, bool literally, bool remcr)
|
|||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Shift the delete registers: "9 is cleared, "8 becomes "9, etc.
|
||||||
|
static void shift_delete_registers(bool y_append)
|
||||||
|
{
|
||||||
|
free_register(&y_regs[9]); // free register "9
|
||||||
|
for (int n = 9; n > 1; n--) {
|
||||||
|
y_regs[n] = y_regs[n - 1];
|
||||||
|
}
|
||||||
|
if (!y_append) {
|
||||||
|
y_previous = &y_regs[1];
|
||||||
|
}
|
||||||
|
y_regs[1].y_array = NULL; // set register "1 to empty
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Handle a delete operation.
|
* Handle a delete operation.
|
||||||
*
|
*
|
||||||
@ -1417,13 +1430,7 @@ int op_delete(oparg_T *oap)
|
|||||||
*/
|
*/
|
||||||
if (oap->regname != 0 || oap->motion_type == kMTLineWise
|
if (oap->regname != 0 || oap->motion_type == kMTLineWise
|
||||||
|| oap->line_count > 1 || oap->use_reg_one) {
|
|| oap->line_count > 1 || oap->use_reg_one) {
|
||||||
free_register(&y_regs[9]); /* free register "9 */
|
shift_delete_registers(is_append_register(oap->regname));
|
||||||
for (n = 9; n > 1; n--)
|
|
||||||
y_regs[n] = y_regs[n - 1];
|
|
||||||
if (!is_append_register(oap->regname)) {
|
|
||||||
y_previous = &y_regs[1];
|
|
||||||
}
|
|
||||||
y_regs[1].y_array = NULL; // set register "1 to empty
|
|
||||||
reg = &y_regs[1];
|
reg = &y_regs[1];
|
||||||
op_yank_reg(oap, false, reg, false);
|
op_yank_reg(oap, false, reg, false);
|
||||||
did_yank = true;
|
did_yank = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user