From: Tomas Frydrych (tomas@frydrych.uklinux.net)
Date: Sun May 05 2002 - 11:56:24 EDT
I have committed the changes toward 32-bit internal representation
of Unicode and removed the lock from the src directory. These
changes cover only the main module XP, win32 and gtk code and
the wordperfect importer. I will leave the other platforms and plugins
for others to do, see the notes below.
I have been able to do only very limited testing and this transition is
bound to introduce bugs, since, among other things, the code at
places uses UT_uint16 instead UT_UCSChar and hardcodes the
character size to 2 instead of using sizeof(UT_UCSChar). Hopefully
I have got rid off most of these.
Summary of the changes
-------------------------------------
There are three new types now: UT_UCS4Char, UT_UCS2Char and
UT_GrowBufElement. There is a new string class UT_UCS4String,
and new sets of UT_UCS4_ and UT_UCS2_ string functions
replacing the UT_UCS_ functions. All internal Unicode processing
should be done using the UT_UCS4Char and functions. I have left
the UT_UCSChar type in place for the time being, as an equivalent
of the new UT_UCS4Char type; this is a temporary measure that is
meant to make the transition easier and once we are done we will
do a global replace and remove UT_UCSChar from the ut_type.h
file. Consequently, all new code should only use UT_UCS4Char.
Notes on transferring the remaining code:
(1) Replace any UT_UCS_ calls with UT_UCS4_ or UT_UCS2_ as
appropriate; replace any UT_UCS2String instances with
UT_UCS4String, where appropriate. Outside of impexp code and
the input methods and platform specific text drawing calls this can
be done blindly; in these special case more care is needed.
(2) Make sure that the platform's input methods and drawing
methods still work, and make any changes where necessary.
(3) In the unlikely case the platform-specific code makes use of the
UT_GrowBuf class, add explicit casts using UT_UCS4Char and
UT_GrowBufElement as needed.
Tomas
This archive was generated by hypermail 2.1.4 : Sun May 05 2002 - 12:03:31 EDT