1
0
forked from aniani/vim

patch 8.2.2562: GUI: star register changed when 'clipboard is "unnamedplus"

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)
This commit is contained in:
Bram Moolenaar
2021-03-02 19:04:11 +01:00
parent 3dc3474f00
commit 37096afd3f
2 changed files with 10 additions and 4 deletions

View File

@@ -1402,12 +1402,13 @@ op_yank(oparg_T *oap, int deleting, int mess)
# ifdef FEAT_X11 # ifdef FEAT_X11
// If we were yanking to the '+' register, send result to selection. // 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 if (clip_plus.available
&& (curr == &(y_regs[PLUS_REGISTER]) && (curr == &(y_regs[PLUS_REGISTER])
|| (!deleting && oap->regname == 0 || (!deleting && oap->regname == 0
&& ((clip_unnamed | clip_unnamed_saved) & && ((clip_unnamed | clip_unnamed_saved) &
CLIP_UNNAMED_PLUS)))) CLIP_UNNAMED_PLUS))))
{ {
if (curr != &(y_regs[PLUS_REGISTER])) if (curr != &(y_regs[PLUS_REGISTER]))
// Copy the text from register 0 to the clipboard 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_own_selection(&clip_plus);
clip_gen_set_selection(&clip_plus); clip_gen_set_selection(&clip_plus);
if (!clip_isautosel_star() && !clip_isautosel_plus() if (!clip_isautosel_star()
&& !did_star && curr == &(y_regs[PLUS_REGISTER])) && !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])); copy_yank_reg(&(y_regs[STAR_REGISTER]));
clip_own_selection(&clip_star); clip_own_selection(&clip_star);

View File

@@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
2562,
/**/ /**/
2561, 2561,
/**/ /**/