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
index 7a35112..5db13a0 100644
--- a/src/clipboard.c
+++ b/src/clipboard.c
@@ -1317,7 +1317,12 @@
}
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 d3bfaa9..38dc082 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 @@
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 0530106..3fccc70 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 907,
+/**/
906,
/**/
905,