[fpc-devel] Unicodestring branch, please test and help fixing

Martin Schreiber fpmse at bluewin.ch
Fri Sep 5 22:29:02 CEST 2008


Florian,

On Saturday 30 August 2008 13.37:42 Florian Klaempfl wrote:
> I've continued to work on support of an unicodestring type in fpc. It's
> currently in an svn branch at:
> http://svn.freepascal.org/svn/fpc/branches/unicodestring
> and will be merged later to trunk. The unicodestring type is a ref.
> counted utf-16 string. On non-windows, widestring is mapped to this
> type. If you're interested in unicode support please test, give feedback
> here and submit fixes.
>
I tried the unicode branch on Windows, rev. 11711 does not compile:

make[7]: Entering directory `E:/FPC/svn/trunk/rtl/win32'
E:/FPC/svn/trunk/compiler/ppc1.exe -Ur -Xs -O2 -n -Fi../inc -Fi../i386 -Fi../win
 -FE. -FUE:/FPC/svn/trunk/rtl/units/i386-win32 -di386 -dRELEASE -Us -Sg 
system.pp -Fi../win
wstrings.inc(1655,60) Error: Identifier not found "CharLengthPChar"
ustrings.inc(2147,42) Error: Incompatible types: got "<address of 
procedure(PCha
r,var UnicodeString, LongInt);Register>" expected "<procedure variable type of 
procedure(PChar,var WideString, LongInt);Register>"
ustrings.inc(2148,44) Error: Incompatible types: got "<address of 
function(const
 UnicodeString):UnicodeString;Register>" expected "<procedure variable type of 
function(const WideString):WideString;Register>"
ustrings.inc(2149,44) Error: Incompatible types: got "<address of 
function(const
 UnicodeString):UnicodeString;Register>" expected "<procedure variable type of 
function(const WideString):WideString;Register>"
ustrings.inc(2151,46) Error: Incompatible types: got "<address of 
function(const
 UnicodeString,const UnicodeString):LongInt;Register>" expected "<procedure 
variable type of function(const WideString,const 
WideString):LongInt;Register>"
ustrings.inc(2152,50) Error: Incompatible types: got "<address of 
function(const
 UnicodeString,const UnicodeString):LongInt;Register>" expected "<procedure 
variable type of function(const WideString,const 
WideString):LongInt;Register>"
system.pp(1253) Fatal: There were 6 errors compiling module, stopping
Fatal: Compilation aborted
make[7]: *** [system.ppu] Fehler 1
make[7]: Leaving directory `E:/FPC/svn/trunk/rtl/win32'
make[6]: *** [win32_all] Fehler 2
make[6]: Leaving directory `E:/FPC/svn/trunk/rtl'
make[5]: *** [rtl] Fehler 2
make[5]: Leaving directory `E:/FPC/svn/trunk/compiler'
make[4]: *** [next] Fehler 2
make[4]: Leaving directory `E:/FPC/svn/trunk/compiler'
make[3]: *** [ppc2.exe] Fehler 2
make[3]: Leaving directory `E:/FPC/svn/trunk/compiler'
make[2]: *** [cycle] Fehler 2
make[2]: Leaving directory `E:/FPC/svn/trunk/compiler'
make[1]: *** [compiler_cycle] Fehler 2
make[1]: Leaving directory `E:/FPC/svn/trunk'
make: *** [build-stamp.i386-win32] Fehler 2

Compiling MSEide with rev. 11667 I get:
Free Pascal Compiler version 2.3.1 [2008/09/05] for i386
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: Win32 for i386
Compiling mseide.pas
[...]
msestream.pas(762,2) Warning: Class types "tmsefilestream" 
and "THandleStreamcracker" are not related
msestream.pas(785,33) Warning: Class types "tmsefilestream" 
and "THandleStreamcracker" are not related
msestream.pas(810,34) Warning: Class types "tmsefilestream" 
and "THandleStreamcracker" are not related
msesysintf.pas(1552,21) Fatal: Unknown 
compilerproc "fpc_widechararray_to_unicodestr". Check if you use the correct 
run time library.
Fatal: Compilation aborted

If you want to try it yourself, MSEide+MSEgui trunk rev. 2473 has msestring = 
unicodestring if compiled with -dmse_unicodestring.
I found no UnicodeString support in typeinfo and variants?
What are the plans for Unicode resourcestrigs? TField should probably have an 
asUnicodeString property too.

Thank you very much for your work.

Martin



More information about the fpc-devel mailing list