cpstrnew branch (was Re: [fpc-devel] Freepascal 2.4.0rc1 released)
webpirat at mail.ru
Mon Nov 9 15:36:06 CET 2009
Michael Schnell wrote:
> Is this page
> (saying "Upcoming Delphi release codenamed Tiburon will natively support
> still valid ?
At least the branch link is valid :)
Yesterday I asked Florian to permit me to help him with the development.
So at moment I don't know everything about the branch but already have
Branch is trying to implement similar to d2009 codepage string support.
What is already done there:
1. string type internal representaion has changed. It now has
elementsize and codepage fields.
2. new string type declaration syntax although it differs from delphi.
FPC syntax is:
Cp1251StringType = string<1251> and delphi do this so
Cp1251StringType = type AnsiString(1251)
3. RawByteString type (an ansi string type which does not perform any
codepage conversions) with compiler support. Although this support is a
bit differ from delphi. For example: delphi does not prefere
RawByteString to other ansi string types for overload functions. It is
imposible to pass ansi string (<> RawByteString) to functions by
reference (using var or out) while in FPC it is possible. Although,
delphi allow this for some internal functions (not fair).
4. Most of codepage convertion methods and string type convertion
methods (ansistring <=> unicodestring <=> widestring)
But RTL is still needs a lot of work and review. Functions which has
AnsiString arguments will convert all your codepage strings to the
default system encoding. So where is needed this must be replaced by
RawByteString type (for WriteLn, ReadLn, etc).
Today I commited a few fixes to that branch. I also have few
non-commited changes which make codepage string concatenation and
WriteLn work but they made the compiler compilation fail and thus need
more attention :)
More information about the fpc-devel