[fpc-devel] What's the state of "string"?

michael.vancanneyt at wisa.be michael.vancanneyt at wisa.be
Wed Mar 21 09:03:53 CET 2012



On Wed, 21 Mar 2012, Hans-Peter Diettrich wrote:

> I wonder about much code in the RTL/FCL, that depends on String type 
> arguments, like:
>
>  Procedure TStream.WriteAnsiString (const S : String);
>  Var L : Longint;
>  begin
>    L:=Length(S);
>    WriteBuffer (L,SizeOf(L));
>    WriteBuffer (Pointer(S)^,L);
>  end;
>
> This method will work only as long as String=AnsiString, because Length 
> *bytes* are written, not *chars* of a possibly different byte count.
>
>
> Is the use of generic types, like String, really okay in the library code, 
> when the concrete type matters?

No. This work still needs to be done.

>
> The documentation on strings (3.2 Character types) is not really helpful, 
> most entries look like they deserve an update reflecting the role of 
> UnicodeString and the generic String type, and implicit string conversions. 
> In detail I miss instructions on how to determine or specify the String type, 
> with different FPC versions.

{$H} is documented, {$IFOPT} is documented.

That's all there is.

As soon as the rest is implemented, it will be documented as well.

Michael.



More information about the fpc-devel mailing list