Apache OpenOffice (AOO) Bugzilla – Issue 74049
Math: user-defined symbol should be able to handle UCS4 (21 bit unicode/ UTF-32) characters
Last modified: 2010-10-14 10:05:32 UTC
With the change to the control used in the Edit-Symbols dialog the returned characters are now of type sal_UCS4 instead thus the code needs to be changed appropriately. (For the time being those characters are hard-cast to sal_Unicode, thus everything functional before will be still functional but the new functionality will not work.) The reuired changes include the Math.xcu where the user-defined symbols get saved. The type "char" there should be changed to "string". And the other dialog displaying those characters need to be changed accordingly. Implications on import/export filters remain to be evaluated.
.
Setting target to OOO 3.4
Note for testing purposes: "DejaVu Sans" has surrogate (20-bit) characters included.
Files changed: starmath: M inc/dialog.hxx M inc/symbol.hxx M inc/utility.hxx M source/cfgitem.cxx M source/dialog.cxx M source/node.cxx M source/smres.src M source/symbol.cxx M source/utility.cxx Match now also shows the characters Unicode point as the default symbol name in the 'Edit Symbols' dialog.
Fixed in CWS tl82. File format changes are Ok because: a) only the settings.xml is changed and that isn't covered by ODF TC in detail but only in syntax. And I only changed the character type from short (16 bit) to int (32 bit) b) the new files are still accepted by the ODF validator http://tools.odftoolkit.org/odfvalidator c) The new files can still be read by an old office e.g. OOo 3.2 (thanks to an old hard cast to INT16 in that code), of course characters in the 20 bit Unicode range will not get properly displayed though.
Setting issue type to feature since for Math it is something new.
Adjusting summary to the fact the the highest codepoint allowed by unicode ( U+10FFFF) has 21bits.
@TL: please let this get verified by code review.
verified
Integrated in DEV300_m89 -> working -> closing.