changeset 6220:1138726736fb v7.4.445

updated for version 7.4.445 Problem: Clipboard may be cleared on startup. Solution: Set clip_did_set_selection to -1 during startup. (Christian Brabandt)
author Bram Moolenaar <bram@vim.org>
date Fri, 19 Sep 2014 13:46:52 +0200
parents abbde7b3841d
children f3c980ab39a3
files src/main.c src/ui.c src/version.c
diffstat 3 files changed, 13 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/main.c
+++ b/src/main.c
@@ -958,8 +958,17 @@ vim_main2(int argc UNUSED, char **argv U
     if (p_im)
 	need_start_insertmode = TRUE;
 
+#ifdef FEAT_CLIPBOARD
+    if (clip_unnamed)
+       /* do not overwrite system clipboard while starting up */
+       clip_did_set_selection = -1;
+#endif
 #ifdef FEAT_AUTOCMD
     apply_autocmds(EVENT_VIMENTER, NULL, NULL, FALSE, curbuf);
+# ifdef FEAT_CLIPBOARD
+    if (clip_did_set_selection < 0)
+       clip_did_set_selection = TRUE;
+# endif
     TIME_MSG("VimEnter autocommands");
 #endif
 
--- a/src/ui.c
+++ b/src/ui.c
@@ -571,7 +571,7 @@ start_global_changes()
 {
     clip_unnamed_saved = clip_unnamed;
 
-    if (clip_did_set_selection)
+    if (clip_did_set_selection > 0)
     {
 	clip_unnamed = FALSE;
 	clip_did_set_selection = FALSE;
@@ -584,7 +584,7 @@ start_global_changes()
     void
 end_global_changes()
 {
-    if (!clip_did_set_selection)
+    if (clip_did_set_selection == FALSE)  /* not when -1 */
     {
 	clip_did_set_selection = TRUE;
 	clip_unnamed = clip_unnamed_saved;
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    445,
+/**/
     444,
 /**/
     443,