diff --git a/src/ops.c b/src/ops.c index 561046d378..f08e576cfe 100644 --- a/src/ops.c +++ b/src/ops.c @@ -1623,6 +1623,7 @@ op_delete(oap) #endif 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; @@ -1715,8 +1716,10 @@ op_delete(oap) /* * Put deleted text into register 1 and shift number registers if the * delete contains a line break, or when a regname has been specified. + * Use the register name from before adjust_clip_reg() may have + * changed it. */ - if (oap->regname != 0 || oap->motion_type == MLINE + if (orig_regname != 0 || oap->motion_type == MLINE || oap->line_count > 1 || oap->use_reg_one) { y_current = &y_regs[9]; diff --git a/src/version.c b/src/version.c index 577eddeafb..4b4890c7e0 100644 --- a/src/version.c +++ b/src/version.c @@ -719,6 +719,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 649, /**/ 648, /**/