[fpc-devel] StrPLCopy with MaxLen=0
LacaK
lacak at zoznam.sk
Thu May 14 14:34:35 CEST 2015
Dňa 14.5.2015 o 14:15 Michael Van Canneyt napísal(a):
>
>
> On Thu, 14 May 2015, LacaK wrote:
>
>> Hi,
>>
>> When I run this simple program in Delphi:
>>
>> ============================================
>> program bug_StrPLCopy;
>>
>> {$APPTYPE CONSOLE}
>>
>> uses
>> SysUtils;
>>
>> var
>> Buf: array[0..10] of Char;
>>
>> begin
>> Buf[0] := 'A';
>> writeln(ord(Buf[0]));
>> StrPLCopy(Buf, '', 0);
>> writeln(ord(Buf[0]));
>> readln;
>> end.
>>
>> ============================================
>> Delphi Output is:
>> 65
>> 0
>>
>> In FPC Output is:
>> 65
>> 65
>>
>> So for MaxLen = 0 nothing happens.
>>
>> In function StrPLCopy there is:
>> if (Result <> Nil) and (MaxLen <> 0) then
>> ...
>>
>> Is it bug?
>
>> From the delphi docs:
>
> StrPLCopy copies up to a maximum of MaxLen characters from Source to
> the null-terminated string Dest. StrPLCopy returns a pointer to Dest.
> Note: Dest should point to a location with room for MaxLen + 1
> characters, including the null terminator.
>
> So: yes, it is a bug, please report it.
Thanks
http://bugs.freepascal.org/view.php?id=28089
-Laco.
More information about the fpc-devel
mailing list