uwog.net
Latest news entries
Improving complex language support in AbiWord
I've spent the last week or so learning enough about complex languages to be able to fix a bunch of complex text related bugs in AbiWord. First of all our cursor movement was broken as we didn't respect text cluster boundaries. The same was true for deleting or backspacing through text clusters. I found an old but good bug report that clearly explained what was supposed to happen and how we failed to do that, which was a great help.
Then there was a bug in our font substitution code that resulted in totally unreadable text, which was caused by a bad bad bug in our font caching mechanism.
And finally we greatly screwed up rendering text selections. This was caused by a bug in the code that fed substrings to pango, which seemed like an overly complex procedure to my untrained eye. As far as I can see I only have things like pango_cairo_show_glyph_string at my disposal, which can't render substrings. I have no clue why not. Uniscribe's ScriptTextOut on Windows can do that, so it is not theoretically impossible I guess.
All these fixes are part of AbiWord 2.8.4, which I released yesterday. I'd love to get some feedback from people familiar with complex scripts if AbiWord is behaving as it should now. I'm most unsure about our cursor movement and selections in RtL languages, but surely we have more bugs that I'm unaware of :)
Please test it!
[ Release Notes | ChangeLog | Download ]