updated for version 7.3.856
Problem: When calling system() multi-byte clipboard contents is garbled.
Solution: Save and restore the clipboard contents. (Yukihiro Nakadaira)
diff --git a/src/ui.c b/src/ui.c
index 4a4506e..c835305 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -1456,6 +1456,21 @@
#endif
}
+ int
+clip_gen_owner_exists(cbd)
+ VimClipboard *cbd;
+{
+#ifdef FEAT_XCLIPBOARD
+# ifdef FEAT_GUI_GTK
+ if (gui.in_use)
+ return clip_gtk_owner_exists(cbd);
+ else
+# endif
+ return clip_x11_owner_exists(cbd);
+#endif
+ return TRUE;
+}
+
#endif /* FEAT_CLIPBOARD */
/*****************************************************************************
@@ -2398,7 +2413,8 @@
Widget myShell;
VimClipboard *cbd;
{
- XtDisownSelection(myShell, cbd->sel_atom, CurrentTime);
+ XtDisownSelection(myShell, cbd->sel_atom,
+ XtLastTimestampProcessed(XtDisplay(myShell)));
}
int
@@ -2440,6 +2456,13 @@
VimClipboard *cbd UNUSED;
{
}
+
+ int
+clip_x11_owner_exists(cbd)
+ VimClipboard *cbd;
+{
+ return XGetSelectionOwner(X_DISPLAY, cbd->sel_atom) != None;
+}
#endif
#if defined(FEAT_XCLIPBOARD) || defined(FEAT_GUI_X11) \