|
@@ -2878,7 +2878,13 @@ implementation
|
|
end
|
|
end
|
|
{ encoding parameter required? }
|
|
{ encoding parameter required? }
|
|
else if (tstringdef(resultdef).stringtype=st_ansistring) and
|
|
else if (tstringdef(resultdef).stringtype=st_ansistring) and
|
|
- (tstringdef(left.resultdef).stringtype in [st_widestring,st_unicodestring]) then
|
|
|
|
|
|
+ ((tstringdef(left.resultdef).stringtype in [st_widestring,st_unicodestring]) or
|
|
|
|
+ { ansistring to ansistring and no RawByteString envolved? }
|
|
|
|
+ ((tstringdef(resultdef).encoding<>65535) and
|
|
|
|
+ (tstringdef(left.resultdef).stringtype=st_ansistring) and
|
|
|
|
+ (tstringdef(left.resultdef).encoding<>65535)
|
|
|
|
+ )
|
|
|
|
+ ) then
|
|
result:=ccallnode.createinternres(procname,
|
|
result:=ccallnode.createinternres(procname,
|
|
ccallparanode.create(cordconstnode.create(tstringdef(resultdef).encoding,u16inttype,true),
|
|
ccallparanode.create(cordconstnode.create(tstringdef(resultdef).encoding,u16inttype,true),
|
|
ccallparanode.create(left,nil)),resultdef)
|
|
ccallparanode.create(left,nil)),resultdef)
|