mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 03:19:17 +02:00
Fix getting too much string data from clipboard (w32 only). Issue #16483 Based on patch by Bart Broersma
git-svn-id: trunk@27553 -
This commit is contained in:
parent
1f15b325ab
commit
89bc817f68
@ -411,12 +411,20 @@ begin
|
|||||||
begin;
|
begin;
|
||||||
SetLength(BufferWideString, Size div 2);
|
SetLength(BufferWideString, Size div 2);
|
||||||
BufferStream.Read(BufferWideString[1], Size);
|
BufferStream.Read(BufferWideString[1], Size);
|
||||||
|
//BufferString may have pending #0 's (or garbage after a #0)
|
||||||
|
Size := Pos(#0, BufferWideString);
|
||||||
|
if Size > 0 then
|
||||||
|
SetLength(BufferWideString, Size);
|
||||||
BufferString := UTF16ToUTF8(BufferWideString);
|
BufferString := UTF16ToUTF8(BufferWideString);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
SetLength(BufferString, Size);
|
SetLength(BufferString, Size - 1);
|
||||||
BufferStream.Read(BufferString[1], Size);
|
BufferStream.Read(BufferString[1], Size);
|
||||||
|
//BufferString may have pending #0 's (or garbage after a #0)
|
||||||
|
Size := Pos(#0, BufferString);
|
||||||
|
if Size > 0 then
|
||||||
|
SetLength(BufferString, Size - 1);
|
||||||
BufferString := AnsiToUtf8(BufferString);
|
BufferString := AnsiToUtf8(BufferString);
|
||||||
end;
|
end;
|
||||||
Stream.Write(BufferString[1], Length(BufferString));
|
Stream.Write(BufferString[1], Length(BufferString));
|
||||||
|
Loading…
Reference in New Issue
Block a user