Incompatible clipboard format between 32bit and 64bit cygwin

Mark Geisert mark@maxrnd.com
Tue Sep 28 04:49:27 GMT 2021


Hi Thomas,

Thomas Wolff wrote:
> 
> Am 26.09.2021 um 20:37 schrieb Thomas Wolff:
>>
>> Am 26.09.2021 um 11:50 schrieb Mark Geisert:
>>> Hi Takashi,
>>>
>>> Takashi Yano via Cygwin wrote:
>>>> I noticed that cygwin clipboard is not compatible
>>>> between 32bit and 64bit cygwin.
>>>>
>>>> If I run 'echo AAAAAAAA > /dev/clipboard' in 32bit cygwin,
>>>> and run 'cat /dev/clipboard' in 64bit cygwin, this result in
>>>> cat: /dev/clipboard: Bad address
>>>>
>>>> This is because the structure
>>>> typedef struct
>>>> {
>>>>    timestruc_t   timestamp;
>>>>    size_t    len;
>>>>    char      data[1];
>>>> } cygcb_t;
>>>> defined in fhandler_clipboard.cc has different size.
>>>>
>>>> Is this the known issue?
>>>
>>> I doubt anybody has ever tried what you did. 
>> I have and it failed; I just didn't find it important enough to report it 
>> here... Thanks for the plan to fix it.
>>
>>> I have been testing getclip and putclip between 32- and 64-bit environments, 
>>> but neglected to test Cygwin-internal clipboard format that prepends cygcb_t to 
>>> the user-supplied data. 
> As we're at it, what's the purpose of a cygwin-internal clipboard format at all?
> Copy/paste between 32bit/64bit mintty works; mintty uses Windows CF_UNICODETEXT 
> clipboard format.

The cygwin-internal clipboard format records a timestamp and content length when 
Cygwin (or putclip) updates the clipboard contents.  This allows 'stat' and 
fstat() to show something sensible for /dev/clipboard.  The latter feature went 
into Cygwin 1.7.13.

Other than that, not much difference to CF_UNICODETEXT ;-).

..mark


More information about the Cygwin mailing list