* fpc_AnsiStr_Concat: if one of the strings is empty and CP_NONE is passed, the code page

of the other string is taken, this is also like fpc_AnsiStr_Concat_multi works if length(sarr)=2

git-svn-id: trunk@47976 -
This commit is contained in:
florian 2021-01-02 16:39:39 +00:00
parent 390be00327
commit 8b08079224

View File

@ -236,12 +236,16 @@ begin
S2CP:=TranslatePlaceholderCP(S2CP);
{$ifdef FPC_HAS_CPSTRING}
{ if the result is rawbytestring and both strings have the same code page,
keep that code page }
if (cp=CP_NONE) and
(S1CP=S2CP) then
DestCP:=S1CP;
keep that code page or keep the code page if the other string is empty }
if cp=CP_NONE then
begin
if (S1CP=S2CP) or (S2='') then
DestCP:=S1CP
else if S1='' then
DestCP:=S2CP;
end;
{$endif FPC_HAS_CPSTRING}
if (S1CP<>DestCP) or (S2CP<>DestCP) then
if ((S1CP<>DestCP) and (s1<>'')) or ((S2CP<>DestCP) and (s2<>'')) then
begin
ansistr_concat_complex(DestS,S1,S2,DestCP);
exit;