This is the mail archive of the cygwin-developers mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: /dev/clipboard corrupted


Am 19.07.2012 11:41, schrieb Corinna Vinschen:
On Jul 9 01:15, Thomas Wolff wrote:
Am 04.07.2012 10:15, schrieb Corinna Vinschen:
On Jul 3 18:29, Thomas Wolff wrote:
...
* The current (CVS) code will not work if even the first character
to be converted
    needs more bytes than the buffer provides, e.g. if the
application calls read() with length 1 only.
    Some extra buffering would be needed to make it work then.
Yes, indeed. I'll have a look.
...
No, not yet.  This isn't exactly a regression from former behaviour.
Please provide a patch or remind me in a few weeks again.
About the buffering I may send a patch when I find time.
(Gave it a short try but no success yet.)
* I had previously observed that with a read size of n only n-1
bytes would be delivered
    and thought this was on purpose because wcstombs appends a final
nul to its result.
    Now n bytes are returned (if available) and in fact the byte
behind the read() buffer is
    overwritten (see modified test program).
It's not Cygwin overwriting the byte, your testcase is...
Both were, actually...
...
		n = read (fd, filebuf, filebuflen);
		if (out_tty) {
			filebuf [n] = 0;
Hmm, what if n == filebuflen?
I admit my test case was bogus in this respect *BLUSH*.
However, yet the error is there, as a fixed test case reveals.
Also your own testcase does print out "OVERWRITTEN".
I don't see this.  I use the same "Scoloplos" testcase and my
code does not print "OVERWRITTEN".
Beware that for the test case, you need to do a Windows paste; cp testfile /dev/clipboard will not do because you would take the "CYGWIN_NATIVE" branch then. Copy from notepad or mouse-copy from mintty will do.
Thomas



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]