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
// 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);

View File

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