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.
An existing working copy of trunk can be switched to this branch by
cd fpc
svn switch http://svn.freepascal.org/svn/fpc/branches/unicodestring
and back with
svn switch http://svn.freepascal.org/svn/fpc/trunk
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel
The Pascal huge strings always annoy me.
Since - it is IMPLICIT automatic object with set of overloaded methods,
length and reference count fields etc hidden from developer.
In near future we geat a Zoo of the strings:
AnsiString, WideString, UnicodeString, ShortString, PWideChar, PChar
Some of them with encoding field.
Why not to make it EXPLICIT object
s:=TCoolFPCString.Create('Test');
s2:=TCoolFPCString.Create('????????'); //UTF8 encoded constant
s.asUtf8+=s2;
SetWindowTextW(WinHandle,s.AsUnicodeString); // i explicitly say - get
me wide string and DO not any compiler magic
if (s1.length=length(s2))... // generic runtime function length returns
the property of cool object
s1.AcquireLock // prevent other threads acccess
s1.Clear;
s1.LoadFromResource(n_ReasourceId); // just use GNU gettext
s1.LoadTranslationFromResource(n_resID,'be_BY');
s1.ReleaseLock // allow other thread access
Anyway I just can subclass standard string and get a new functionality
with reachness of availabel fields and methods.
FPC supports operators - so there is lots of way to represent the
string, assign the string, load it from resource.
Make it thread-safe at implementation level but not at compiler level.
Standard string, unicode string , ansistring, widestring can be
implemented as wrappers along this object.
It seems like in mseGUI it is done.
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel