changeset 3782:063765c3cebb v7.3.649

updated for version 7.3.649 Problem: When 'clipboard' is set to "unnamed" small deletes end up in the numbered registers. (Ingo Karkat) Solution: Use the original register name to decide whether to put a delete in a numbered register. (Christian Brabandt)
author Bram Moolenaar <bram@vim.org>
date Wed, 05 Sep 2012 14:18:45 +0200
parents 1b1c3cead9ad
children 5fb413417067
files src/ops.c src/version.c
diffstat 2 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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];
--- a/src/version.c
+++ b/src/version.c
@@ -720,6 +720,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    649,
+/**/
     648,
 /**/
     647,