mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-22 14:40:24 +02:00
lcl: fixed LRSObjectTextToBinary toWString, issue #19650
git-svn-id: trunk@37642 -
This commit is contained in:
parent
68d9311e48
commit
95989934cf
@ -2675,6 +2675,13 @@ var
|
||||
Output.Write(s[1], Length(s));
|
||||
end;
|
||||
|
||||
procedure WriteWideString(const s: WideString);
|
||||
begin
|
||||
WriteLRSInteger(Output,Length(s));
|
||||
if Length(s) > 0 then
|
||||
Output.Write(s[1], Length(s)*2);
|
||||
end;
|
||||
|
||||
procedure WriteInteger(value: LongInt);
|
||||
begin
|
||||
if (value >= -128) and (value <= 127) then begin
|
||||
@ -2779,7 +2786,7 @@ var
|
||||
WriteLRSExtended(Output,flt);
|
||||
ParserNextToken;
|
||||
end;
|
||||
toString,toWString:
|
||||
toString:
|
||||
begin
|
||||
toStringBuf := parser.TokenString;
|
||||
//DebugLn(['ProcessValue toStringBuf="',toStringBuf,'" ',dbgstr(toStringBuf)]);
|
||||
@ -2800,6 +2807,20 @@ var
|
||||
WriteLongString(toStringBuf);
|
||||
end;
|
||||
end;
|
||||
toWString:
|
||||
begin
|
||||
toStringBuf := parser.TokenString;
|
||||
//DebugLn(['ProcessValue toStringBuf="',toStringBuf,'" ',dbgstr(toStringBuf)]);
|
||||
while ParserNextToken = '+' do
|
||||
begin
|
||||
ParserNextToken; // Get next string fragment
|
||||
if not (parser.Token in [toString,toWString]) then
|
||||
parser.CheckToken(toString);
|
||||
toStringBuf := toStringBuf + parser.TokenString;
|
||||
end;
|
||||
Output.WriteByte(Ord(vaWString));
|
||||
WriteWideString(UTF8Decode(toStringBuf));
|
||||
end;
|
||||
toSymbol:
|
||||
begin
|
||||
if CompareText(parser.TokenString, 'True') = 0 then
|
||||
@ -5754,3 +5775,5 @@ finalization
|
||||
|
||||
end.
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user