Stefan Schimanski wrote:
Hi!

Before playing the patchwork game again in fixing the bugs in the subject and, without noticing, introducing a hand full new bugs, here are some patches which clean up the bidi mess:

The Bidi class mainly offers the isBoundary method whose use is spread over the LyX code. Unfortunately it needs a valid cache of the bidi boundaries. To produce that it needs a valid Row object, which in turn needs valid paragraph metrics which are not available after many cursor operations. Ignoring this fact leads to #3790, #3801 and #3809.

* So the only clean approach is to rip out all bidi references from the code and finally use the Font information of each position which also holds the RTL/LTR flag. This is done by nobidi.patch (see below).

* Then we can implement Text::setCurrentFont without any reference to Text::bidi and by that fix all the mentioned bugs, implemented in setcurrentfontnobidi.patch.
I've spent some time pursuing these bugs and like with this approach. The Bidi does is too heavily intertwined with the core LyX code. This shows up a lot when tracing.

Richard


--
==================================================================
Richard G Heck, Jr
Professor of Philosophy
Brown University
http://frege.brown.edu/heck/
==================================================================
Get my public key from http://sks.keyserver.penguin.de
Hash: 0x1DE91F1E66FFBDEC
Learn how to sign your email using Thunderbird and GnuPG at:
http://dudu.dyn.2-h.org/nist/gpg-enigmail-howto

Reply via email to