Hello,

In one of my PCs,
dd if=/dev/urandom count=10 | xxd > /dev/clipboard
sometimes fails to set CF_UNICODETEXT data.
As a result, pasting clipboard to notepad does not work.

Even in the case, cygnativeformat data is set correctly.
So, "cat /dev/clipboard" works.

This problem depends on machine very much.

My one PC with Xeon E3-1281 v3 CPU has a high probability of failure,
however, another machine with Core i7-6700K CPU does not.

I looked into this problem, and found OpenClipboard() for
CF_UNICODETEXT fails. It seems that OpenClipboard() just
after CloseClipboard() has high probability of failure.

You can see the following test case immediately stops with error.
Even with Core i7-6700K CPU machine above, the test case fails.

#include <windows.h>
#include <stdio.h>

int main()
{
        for (;;) {
                if (!OpenClipboard(0)) {
                        printf("Open error.\n");
                        break;
                }
                if (!EmptyClipboard()) {
                        printf("Empty error.\n");
                        break;
                }
                if (!CloseClipboard()) {
                        printf("Cloes error.\n");
                        break;
                }
        }
        return 0;
}

I also found the patch attached solves the issue.

I would appreciate any suggestion.

-- 
Takashi Yano <takashi.y...@nifty.ne.jp>

Attachment: 0001-Cygwin-clipboard-Add-workaround-for-setting-clipboar.patch
Description: Binary data

-- 
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

Reply via email to