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 Content-Type: multipart/mixed; boundary="Multipart=_Tue__24_Feb_2026_10_36_28_+0900_LW2.zY5gwG+AAJrp" X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.30 List-Id: General Cygwin discussions and problem reports List-Archive: List-Post: List-Help: List-Subscribe: , From: Takashi Yano via Cygwin Reply-To: Takashi Yano Cc: Mark Geisert Sender: "Cygwin" 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 --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--