diff --git a/src/clipboard.c b/src/clipboard.c index 7a35112d25..5db13a0d21 100644 --- 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 index d3bfaa90df..38dc082dab 100644 --- 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 index 0530106827..3fccc702b5 100644 --- a/src/version.c +++ b/src/version.c @@ -746,6 +746,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 907, /**/ 906, /**/