On 10 Dec 2007, at 08:43, Marc Santhoff wrote:

You can compile with -al and search for CWSTRING in the assembler file generated for your main program. Since that unit has an initialization section, it will be in the init/final table if it's included somewhere.

Hm, that's funny, the string is not found.

I did:

        $ fpc -Fu../zipfile -al -B -FE./bin TestDocInfo
        $ grep -i CWSTRING bin/*.s

and the output was empty.

Meanwhile I had some look and found that DOM is using a type "DOMString"
everywhere which itself is defined as

        DOMString = WideString;

so that is an indicator for using widestrings? The uses-line looks like
this:

        uses
          {$IFDEF MEM_CHECK}MemCheck,{$ENDIF}
          SysUtils, Classes, AVL_Tree;

Confusing ...

The system and sysutils units contain bare metal widestring support: i.e., widestring support which only works (as far as alphabetical ordering, upper/lowercase support and converting from/to ansistrings is concerned) with ascii values <= #127. It is perfectly possible to use widestrings in that way, but then they are simply using twice the memory for no gain whatsoever.

You have to add cwstring on any *nix platform to get actual ansi/ widestring support for your current locale. If you don't, anything can happen.


Jonas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to