summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-06-05 20:03:16 +0200
committerBram Moolenaar <Bram@vim.org>2020-06-05 20:03:16 +0200
commit07188fc5ef2366a3b1952e8686a4031b44152d59 (patch)
treec6d6b8c9de203a2e5971fb5ac8e30220a6f3a600 /src
parentea563cc22be043ff91dcbdf2878c3d1fd944e573 (diff)
patch 8.2.0907: when using :global clipboard isn't set correctlyv8.2.0907
Problem: When using :global clipboard isn't set correctly. Solution: Set "clip_unnamed_saved" instead of "clip_unnamed". (Christian Brabandt, closes #6203, closes #6198)
Diffstat (limited to 'src')
-rw-r--r--src/clipboard.c7
-rw-r--r--src/testdir/test_global.vim11
-rw-r--r--src/version.c2
3 files changed, 19 insertions, 1 deletions
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
@@ -747,6 +747,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 907,
+/**/
906,
/**/
905,