# HG changeset patch # User Bram Moolenaar # Date 1591380904 -7200 # Node ID ec89debe50373b657695f2ef3fe419171350fb85 # Parent 666c23d18e532014cfaf896f4e7e49317ebb6c22 patch 8.2.0907: when using :global clipboard isn't set correctly Commit: https://github.com/vim/vim/commit/07188fc5ef2366a3b1952e8686a4031b44152d59 Author: Bram Moolenaar Date: Fri Jun 5 20:03:16 2020 +0200 patch 8.2.0907: when using :global clipboard isn't set correctly Problem: When using :global clipboard isn't set correctly. Solution: Set "clip_unnamed_saved" instead of "clip_unnamed". (Christian Brabandt, closes #6203, closes #6198) diff --git a/src/clipboard.c b/src/clipboard.c --- a/src/clipboard.c +++ b/src/clipboard.c @@ -1317,7 +1317,12 @@ check_clipboard_option(void) } if (errmsg == NULL) { - clip_unnamed = new_unnamed; + if (global_busy) + // clip_unnamed will be reset to clip_unnamed_saved + // at end_global_changes + clip_unnamed_saved = new_unnamed; + else + clip_unnamed = new_unnamed; clip_autoselect_star = new_autoselect_star; clip_autoselect_plus = new_autoselect_plus; clip_autoselectml = new_autoselectml; diff --git a/src/testdir/test_global.vim b/src/testdir/test_global.vim --- a/src/testdir/test_global.vim +++ b/src/testdir/test_global.vim @@ -1,3 +1,4 @@ +source check.vim func Test_yank_put_clipboard() new @@ -13,6 +14,16 @@ func Test_yank_put_clipboard() bwipe! endfunc +func Test_global_set_clipboard() + CheckFeature clipboard_working + new + set clipboard=unnamedplus + let @+='clipboard' | g/^/set cb= | let @" = 'unnamed' | put + call assert_equal(['','unnamed'], getline(1, '$')) + set clipboard& + bwipe! +endfunc + func Test_nested_global() new call setline(1, ['nothing', 'found', 'found bad', 'bad']) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 907, +/**/ 906, /**/ 905,