Actually the logic truncates the data which exceeded the buffer. If the honor limit is set and the size exceeded, the EDIT_MakeFit will return TRUE. The following code after the EDIT_MakeFit will try to take limit to the buffer size.
+ /* Only replace or insert that many characters that can fit into the + edit control. Do this only if honor_limit is TRUE */ + if(honor_limit && strl > es->buffer_limit) + strl = es->buffer_limit - (tl - (e-s));
Krishna
-----Original Message----- From: Alexandre Julliard [mailto:julliard@winehq.org] Sent: Thursday, May 27, 2004 2:30 PM To: Krishna Murthy Cc: wine-devel@winehq.org Subject: Re: FW: Edit Paste operation does not behave same as MS Windows
Krishna Murthy Krishna.Murthy@guptaworldwide.com writes:
- Change log Entry:
EDIT_MakeFit should return TRUE when the honor_limit is set and paste buffer exceeds the limit. Also EDIT_EM_ReplaceSel should compute size which could fit in the edit control by truncating the extra characters to behave similar to MS Windows paste operation.
You are bypassing the reallocation of the buffer when the limit is exceeded, but still adding the data to the buffer. I don't think this will work right.
-- Alexandre Julliard julliard@winehq.org