| delorie.com/archives/browse.cgi | search |
| DMARC-Filter: | OpenDMARC Filter v1.4.2 delorie.com 61O1au8G3691334 |
| Authentication-Results: | delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com |
| Authentication-Results: | delorie.com; spf=pass smtp.mailfrom=cygwin.com |
| DKIM-Filter: | OpenDKIM Filter v2.11.0 delorie.com 61O1au8G3691334 |
| Authentication-Results: | delorie.com; |
| dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=Htb855HL | |
| X-Recipient: | archive-cygwin AT delorie DOT com |
| DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org B33504B9DB6A |
| DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; |
| s=default; t=1771897014; | |
| bh=yVCpKvB3sosoWgLhUMSqVQtPPG+mUxS5EQZGXd2uz/E=; | |
| h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: | |
| List-Help:List-Subscribe:From:Reply-To:Cc:From; | |
| b=Htb855HLxfgjkSTQrVHnkB2ZAnzG46BG8GwURmO2X9PZz1RFInIGM0QbqwenEpSR4 | |
| vzGWoNqd58mfaKFJcDfuhsj7V+pVxSdVWTw4qnAP1UgmVoRX6z+lKhGoNQaJRT2WGp | |
| BuMeA3rujqWaJH5Ai9Xzo1WitwD35upGCNBOnubc= | |
| X-Original-To: | cygwin AT cygwin DOT com |
| Delivered-To: | cygwin AT cygwin DOT com |
| DMARC-Filter: | OpenDMARC Filter v1.4.2 sourceware.org E01614B9DB56 |
| ARC-Filter: | OpenARC Filter v1.0.0 sourceware.org E01614B9DB56 |
| ARC-Seal: | i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1771896992; cv=none; |
| b=u2NPGl44R+3P+WsMilL62eUvsCbfoVjDCdUvbnpXa5zUi2KZ/XI1I4NgfCKFPJrC4TV614PY9CaI5IN9Arri9z2ClWr73EqciceSP4PXyT5Iyi7HFupxqBV1auaPPo/KmTjsCPpUpx7u0ygGW20Tpop1Y8HtkCqOQIiINgHbDoM= | |
| ARC-Message-Signature: | i=1; a=rsa-sha256; d=sourceware.org; s=key; |
| t=1771896992; c=relaxed/simple; | |
| bh=B0HEsOBdkoyX3V9Z+eD0AdkAVlLk7lkiZDaI6ogz7P8=; | |
| h=Date:From:To:Subject:Message-Id:Mime-Version:DKIM-Signature; | |
| b=S6Lofi8WPOy41pZ1VT+YgIAsen/rvY5DsYiHOov8zFR5C709x2EKjmE3PifMdyf6VmRlhG0zltpfER8tUbVZdau861eqhDzU2jEJdyyLMMeuqTX0oAGQpTy/eQgkIY1lYNRSyXMS9E520xvI/NwAIf4eJ5I0nx2NQSXYfvz4ihY= | |
| ARC-Authentication-Results: | i=1; server2.sourceware.org |
| DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org E01614B9DB56 |
| Date: | Tue, 24 Feb 2026 10:36:28 +0900 |
| To: | cygwin AT cygwin DOT com |
| Subject: | General clipboard issue on cygwin (mintty, putclip, getclip, |
| /dev/clipboard) | |
| Message-Id: | <20260224103628.fdbd7396311092795834c24f@nifty.ne.jp> |
| X-Mailer: | Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32) |
| Mime-Version: | 1.0 |
| X-BeenThere: | cygwin AT cygwin DOT com |
| X-Mailman-Version: | 2.1.30 |
| List-Id: | General Cygwin discussions and problem reports <cygwin.cygwin.com> |
| List-Archive: | <https://cygwin.com/pipermail/cygwin/> |
| List-Post: | <mailto:cygwin AT cygwin DOT com> |
| List-Help: | <mailto:cygwin-request AT cygwin DOT com?subject=help> |
| List-Subscribe: | <https://cygwin.com/mailman/listinfo/cygwin>, |
| <mailto:cygwin-request AT cygwin DOT com?subject=subscribe> | |
| From: | Takashi Yano via Cygwin <cygwin AT cygwin DOT com> |
| Reply-To: | Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp> |
| Cc: | Mark Geisert <mark AT maxrnd DOT com> |
| Sender: | "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com> |
This is a multi-part message in MIME format.
--Multipart=_Tue__24_Feb_2026_10_36_28_+0900_LW2.zY5gwG+AAJrp
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Hi,
I encountered a clipboard issue common to cygwin.
Affected components:
/dev/clipboard, putclip/getclip, mintty
The issue:
If the clipbard is opened by `OpenClipboard(NULL)`, occasionally
SetClipboardData() and GetClipboardData() fails with
ERROR_CLIPBOARD_NOT_OPEN.
When UltraVNC Viewer (https://uvnc.com/) is opened, this issue
happens with a very high probability (> ~90%).
$ echo AAAA > /dev/clipboard
echo: write error: Permission denied
On mintty, text selection by mouse and clicking center button
fails at the first attempt.
For putlclip/getclip, the following command outputs nothing
in a few attempts. ("ABCD" is lost.)
$ echo ABCD |putclip; for a in `seq 100`; do getclip |putclip; done; getclip
$
Solutions:
This can be solved by passing non-zero HWND to OpenClipboard().
Therefore, as for mintty, the following patch is ok I think.
diff --git a/src/winclip.c b/src/winclip.c
index 12c54525..a7cbe365 100644
--- a/src/winclip.c
+++ b/src/winclip.c
@@ -1324,7 +1324,7 @@ static void
do_win_paste(bool do_path)
{
//printf("OpenClipboard win_paste\n");
- if (!OpenClipboard(null))
+ if (!OpenClipboard(wnd))
return;
if (cfg.input_clears_selection)
However, for /dev/clipbard and {put|get}clip, there is no
suitable HWND to pass to OpenClipboard(). Fortunately, I
found the patch attached solves the /dev/clipboard issue.
This is not smart, however it works.
I think similar patch is ok for putclip/getclip.
Any suggestions and comments will be appreciated.
--
Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp>
--Multipart=_Tue__24_Feb_2026_10_36_28_+0900_LW2.zY5gwG+AAJrp
Content-Type: plain/text;
name="0001-Cygwin-clipboard-Add-workaround-for-ERROR_CLIPBOARD_.patch"
Content-Disposition: attachment;
filename="0001-Cygwin-clipboard-Add-workaround-for-ERROR_CLIPBOARD_.patch"
Content-Transfer-Encoding: base64
RnJvbSAxZTFmM2FjYTk5YTkzMDljNzUyMTk4MGQzNjRjMzJjYmEwMmYwMzhlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWthc2hpIFlhbm8gPHRha2FzaGkueWFub0BuaWZ0eS5uZS5q
cD4KRGF0ZTogVGh1LCAxOSBGZWIgMjAyNiAxNjowNDoxNSArMDkwMApTdWJqZWN0OiBbUEFUQ0hd
IEN5Z3dpbjogY2xpcGJvYXJkOiBBZGQgd29ya2Fyb3VuZCBmb3IKIEVSUk9SX0NMSVBCT0FSRF9O
T1RfT1BFTgoKLS0tCiB3aW5zdXAvY3lnd2luL2ZoYW5kbGVyL2NsaXBib2FyZC5jYyB8IDggKysr
KysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp
ZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2ZoYW5kbGVyL2NsaXBib2FyZC5jYyBiL3dpbnN1cC9j
eWd3aW4vZmhhbmRsZXIvY2xpcGJvYXJkLmNjCmluZGV4IDEyNjkxYzdjMS4uMjIxYWFhYzYyIDEw
MDY0NAotLS0gYS93aW5zdXAvY3lnd2luL2ZoYW5kbGVyL2NsaXBib2FyZC5jYworKysgYi93aW5z
dXAvY3lnd2luL2ZoYW5kbGVyL2NsaXBib2FyZC5jYwpAQCAtMjYsMTAgKzI2LDE2IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbAogb3Blbl9jbGlwYm9hcmQgKCkKIHsKICAgY29uc3QgaW50IG1heF9yZXRy
eSA9IDEwOworcmV0cnk6CiAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWF4X3JldHJ5OyBpKyspCiAg
ICAgewogICAgICAgaWYgKE9wZW5DbGlwYm9hcmQgKE5VTEwpKQotCXJldHVybiB0cnVlOworCXsK
KwkgIGlmICghR2V0Q2xpcGJvYXJkRGF0YSAoQ0ZfVU5JQ09ERVRFWFQpCisJICAgICAgJiYgR2V0
TGFzdEVycm9yICgpID09IEVSUk9SX0NMSVBCT0FSRF9OT1RfT1BFTikKKwkgICAgZ290byByZXRy
eTsKKwkgIHJldHVybiB0cnVlOworCX0KICAgICAgIFNsZWVwICgxKTsKICAgICB9CiAgIHJldHVy
biBmYWxzZTsKLS0gCjIuNTEuMAoK
--Multipart=_Tue__24_Feb_2026_10_36_28_+0900_LW2.zY5gwG+AAJrp
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
--
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple
--Multipart=_Tue__24_Feb_2026_10_36_28_+0900_LW2.zY5gwG+AAJrp--
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |