From 07188fc5ef2366a3b1952e8686a4031b44152d59 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Fri, 5 Jun 2020 20:03:16 +0200 Subject: [PATCH] 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) --- src/clipboard.c | 7 ++++++- src/testdir/test_global.vim | 11 +++++++++++ src/version.c | 2 ++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/clipboard.c b/src/clipboard.c index 7a35112d2..5db13a0d2 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 d3bfaa90d..38dc082da 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 053010682..3fccc702b 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, /**/ -- 2.50.1