Michael Van Canneyt schrieb:


On Sun, 29 Dec 2013, Hans-Peter Diettrich wrote:

Inspired by the current Lazarus discussion I'd like to learn more about the current state of the implementation of the new AnsiStrings.

In case nothing has be done yet, I'd suggest to extend TAnsiRec by the new codePage and elemSize fields (words). These can be zero for now, so that the remaining codebase is not affected. Then it will be possible to play around with encoded strings, using the codePage field.


All this is done already a long time ago in trunk.
We're way past that stage.

I'm very confused, didn't use FPC for a long time. Have to refresh memory of all related procedures...

How do I instruct fpcup to checkout the trunk version? (Windows)
I tried to add an parameter fpcURL=trunk to the shortcut, is this correct?

How do I proceed (build, use in Lazarus...)?
Any links appreciated :-)

Current stage is the creation of a unicode RTL, where all base file/string operations accept unicode strings. This is done too.

Next step is creation of the unicode RTL, where "string" = "widestring".
This will be combined with the dotted unit filenames, to be Delphi 2010+ compatible.

<sigh.sigh>
How do I create source files for use with both versions?

To allow people to choose, 2 RTLs will be created: one unicode (string=ansistring), one non-unicode (string=widestring).

This will result (probably) in 2 paths:
units/os-cpu
units/os-cpu-unicode
This is not decided yet.

I planned the work in februari/march.

Thanks :-)

Where can I jump in?


A related question:
Why is the string length set to zero in NewAnsiString, when the allocated Length is already known?

Because the allocated memory length is not necessarily equal to the string length. If you have a string of length 50, setting the length to 25 will not discard and reallocate the memory block, but merely set the character length to 25.

This means that the allocated length is stored somewhere else, in the memory block descriptor?

How can a user request an string of a specific allocation size?


Another one:

I've heard that a mix of encodings converts the (concatenated) output (RawByteString?) to CP_ACP, with possible losses. Is this correct?

DoDi

_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to