Apache OpenOffice (AOO) Bugzilla – Issue 99849
Loss of Typed Text with CTL text
Last modified: 2013-08-07 14:44:00 UTC
Situation: Entering text with font Yahoma or Chandas, IME is chandas IME (links below) Summary of problem: On typing a <space> a <space> a <space> a <space> a <space> a <space> a <space> on a "new line", typing another 'a' causes the entire line to disappear. The behavior is perfectly repeatable. Happens with Tahoma/Chands/Uttara and pretty much any other asian font. Happens whether 'enabled for CTL' and 'enabled for asian languages' are enabled or disabled. bug.odt with 7 'a's and seven intervening spaces enclosed. Typing another a with Chandas IME enabled will cause the line to dissapear. Chandas font http://www.sanskritweb.org/cakram/chandas.ttf Chandas IME http://www.sanskritweb.org/cakram/chandas-ime.zip.
Created attachment 60662 [details] Demo file to illustrate faulty behaviour
Created attachment 60663 [details] Keboard IME for fault behaviour reproduction
Created attachment 60665 [details] Keboard IME for fault behaviour reproduction
Created attachment 60667 [details] Font required for reproducing faulty behaviour
MRU->HDU: open attached odt, type anything at the end of the line -> text at beginning will be invisible.
Only on WIN, not on UNX or AQUA
Found the root cause: USP's ScriptItemize fails for this text with E_OUTOFMEMORY even though more than enough items have been preallocated (more than the number of UTF-16 codepoints in the string). In this example there were sixteen items preallocated for the eight spaces and the seven sanskrit-characters. Giving USP more items works around the outofmem. It seems that USP first determines the script items naively and then merges them if possible (in this case the sanscrit with the neutral spaces).
There are many scenarios where this could also hit us and the fix is simple => added to 3.2 tracker issue
Similar problems exist for Thai, Hindi, etc. Fixed in CWS ooo32gsl01.
Fixed in CWS ooo32gsl01.
@sba: please verify in CWS ooo32gsl01
Note: The reproduction works well with the bugdoc. Just copy and repeatedly paste the last two characters at the end of the line. With doing so, I even managed a loop in an OOO320_m1 office installation without the fix. Fix verified in CWS ooo32gsl01.
OK in OOO320_m3. Closed.