]> granicus.if.org Git - vim/commitdiff
patch 8.2.2562: GUI: star register changed when 'clipboard is "unnamedplus" v8.2.2562
authorBram Moolenaar <Bram@vim.org>
Tue, 2 Mar 2021 18:04:11 +0000 (19:04 +0100)
committerBram Moolenaar <Bram@vim.org>
Tue, 2 Mar 2021 18:04:11 +0000 (19:04 +0100)
Problem:    GUI: star register changed when 'clipboard is "unnamedplus". (Ingo
            Karkat)
Solution:   Do not change the star register when 'clipboard' contains
            "unnamedplus" and not "unnamed". (closes #1516)

src/register.c
src/version.c

index 56b6cadecd9856af26cb541b16568c52f7b62ba0..6ba4e896d86d5d770f56d597d4ad59e35a377c4c 100644 (file)
@@ -1402,12 +1402,13 @@ op_yank(oparg_T *oap, int deleting, int mess)
 
 # ifdef FEAT_X11
     // If we were yanking to the '+' register, send result to selection.
-    // Also copy to the '*' register, in case auto-select is off.
+    // Also copy to the '*' register, in case auto-select is off.  But not when
+    // 'clipboard' has "unnamedplus" and not "unnamed".
     if (clip_plus.available
            && (curr == &(y_regs[PLUS_REGISTER])
                || (!deleting && oap->regname == 0
                  && ((clip_unnamed | clip_unnamed_saved) &
-                     CLIP_UNNAMED_PLUS))))
+                                                         CLIP_UNNAMED_PLUS))))
     {
        if (curr != &(y_regs[PLUS_REGISTER]))
            // Copy the text from register 0 to the clipboard register.
@@ -1415,8 +1416,11 @@ op_yank(oparg_T *oap, int deleting, int mess)
 
        clip_own_selection(&clip_plus);
        clip_gen_set_selection(&clip_plus);
-       if (!clip_isautosel_star() && !clip_isautosel_plus()
-               && !did_star && curr == &(y_regs[PLUS_REGISTER]))
+       if (!clip_isautosel_star()
+               && !clip_isautosel_plus()
+               && !((clip_unnamed | clip_unnamed_saved) == CLIP_UNNAMED_PLUS)
+               && !did_star
+               && curr == &(y_regs[PLUS_REGISTER]))
        {
            copy_yank_reg(&(y_regs[STAR_REGISTER]));
            clip_own_selection(&clip_star);
index 17cb8d9309ee1fd80f6ca34e133424e1adcb9f4e..c4859dedad9d9f5adc08961d3b602366f8a30f98 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2562,
 /**/
     2561,
 /**/