[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