On Fri, 5 May 2017, Mattias Gaertner wrote:

On Fri, 5 May 2017 14:30:32 +0200 (CEST)
Michael Van Canneyt <mich...@freepascal.org> wrote:

[...]
> AFAIK FPC stores UTF-8 string literals (-Fcutf8) as widestrings
> instead of UTF8String. Please correct me if I'm wrong.

To make sure I was presenting correct facts, I did some tests.

As a result of the tests, I think the above statement is wrong.

{$codepage utf8}

var
  p : pchar;

begin
  P:=Pchar('some string literal');
end.

Results in the following assembler:

.globl  _$PROGRAM$_Ld1
_$PROGRAM$_Ld1:
        .ascii  "some string literal\000"
.Le11:

Not widestring as far as I can see ?

To be sure, I added some russian characters:

.Ld1:
        .ascii  "some string literal \320\272\320\270\321\202\320\260"
        .ascii  "\320\271\321\201\320\272\320\276\320\263\320\276\000"

Again, not widestring ?

home: >cat u.pp
{$codepage utf8}
var
  p : pchar;

begin
  P:=Pchar('some string literal китайского');
end.

So, I tried a resourcestring:


.Ld3$strlab:
        .short  65001,1
        .long   0
        .quad   -1,30
.Ld3:
        .ascii  "some more \320\272\320\270\321\202\320\260\320\271\321"
        .ascii  "\201\320\272\320\276\320\263\320\276\000"

Again, no widestring, as far as I can see.

Michael.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to