changeset 20707:ec89debe5037 v8.2.0907

patch 8.2.0907: when using :global clipboard isn't set correctly Commit: https://github.com/vim/vim/commit/07188fc5ef2366a3b1952e8686a4031b44152d59 Author: Bram Moolenaar <Bram@vim.org> 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)
author Bram Moolenaar <Bram@vim.org>
date Fri, 05 Jun 2020 20:15:04 +0200
parents 666c23d18e53
children 66b20c503d2c
files src/clipboard.c src/testdir/test_global.vim src/version.c
diffstat 3 files changed, 19 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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'])
--- 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,