Hello,
I want to use the StrMove() function in a unit compilable in Delphi (XE) and FPC, but I don't know why it doesn't work on FPC.
Consider the following code:
{$IFDEF FPC}
{$codepage utf8} // I need to keep my unit in UTF-8
{$ENDIF}
var
a: AnsiString;
la: Integer;
pa: PAnsiChar;
b: Byte;
bs: TBytes;
begin
a := 'aã';
pa := @a[1];
la := strlen(pa);
WriteLn('L: ', la);
SetLength(bs, la);
StrMove(@bs[0], pa, la);
for b in bs do
WriteLn(b);
end;On Delphi, I get:
*L: 2*
97
227
Perfect, checking it via a character map, the 227 is the keystroke Alt+0227 that is the "ã" character, however, when I try this code in FPC (from trunk), I get:
*L: 3*
97
195
163
And finally a get a wrong content in my final buffer.
So, is the FPC StrMove() function compatible with the Delphi one?
Thank you!
