On Mon, 30 Dec 2013, Graeme Geldenhuys wrote:

On 2013-12-30 11:59, Michael Van Canneyt wrote:
These cases need to be checked anyway if we
would move to a 2-byte char.

Does that now mean the FPC's Unicode RTL actually means UTF-16?

It means string = unicodestring, so yes.

BUT

All file open routines already exist as UTF-16 or single byte variants today in 
trunk.
That will not change.

So where Delphi changed the system unit so it has only the equivalent of

Procedure Assign(Var F : Text; AFileName : UnicodeString);

FPC will have  (in fact, it already has in trunk) overloaded versions:

Procedure Assign(Var F : Text; AFileName : UnicodeString);
Procedure Assign(Var F : Text; AFileName : AnsiString);
Procedure Assign(Var F : Text; AFileName : RawByteString);

So depending on the string type you use, the 'correct' one will be chosen.


ps:
1) So what will the size of Char be in bytes?

in the unicode RTL: 2


2) What will the size in bytes be of ThousandSeparator and
DecimalSeparator be? eg: fpGUI had to introduce its own versions of
these, with a 4-byte max size (as per UTF-8 spec) because some locales
require a 3-byte UTF-8 value.

In the unicode RTL they will be UTF-16 characters, so 2 bytes.

Michael.

--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to