First, tons of apologies for responding so slow.
I found (after Mark CC'ed me on one of the mails) that I'm not
subscribed to wesnoth-dev (wasn't active for the last two years or so).

So I went through the fribidi related mails:
  https://mail.gna.org/public/wesnoth-dev/2009-07/msg00001.html
  https://mail.gna.org/public/wesnoth-dev/2009-07/msg00002.html
  https://mail.gna.org/public/wesnoth-dev/2009-07/msg00003.html
  https://mail.gna.org/public/wesnoth-dev/2009-07/msg00004.html
  https://mail.gna.org/public/wesnoth-dev/2009-07/msg00005.html
  https://mail.gna.org/public/wesnoth-dev/2009-07/msg00007.html

It looks like the situation is as follows:
 * fribidi >= 0.19.0 is working with my patch. The intention of my
   original version limitation was to ensure that a possible breakage
   of the bidi patch won't affect the (far bigger) non-bidi community.

 * To my surprise fribidi >= 0.10.9 was reported to work by Sergey.
   However...

 * loonycyborg fixed (correctly) <fribidi/fribidi.h> to <fribidi.h>
   but this broke compilation for Mark -- which means 0.10.9 should
   be handled differently.

> Mark de Wever <[email protected]> wrote:
> Debian doesn't ship fribidi 0.19 so I can no longer use fribidi for
> Wesnoth. Oron please add conditional code to work with both APIs. 

Debian lenny carries wesnoth-1.4 (didn't touch it) and lenny-backports
carries wesnoth-1.6.2 (also untouched yet). However, you are totally
correct that this situation calls for conditional code.

To prevent further blunders I would like to send the proposed patches
for review of the interested parties before committing them (Mark,
Sergey, with your permission. Anybody else interested, just ping me
privately).

> Nils Kneuper on July 11, 2009 - 11:07:
> Ahhh, several problems with this:
> 1) Starting with 1.6.x fribidi is basically deprecated and only used in
>    the "old" gui elements. No idea if the change is still relevant.
>    Mordante knows more about this.

Deprecated? What should users of bidi languages (Hebrew/Arabic/Farsi) to do?
Mordante, if you can shed some light on this it would be greatly appreciated.

But since you mentioned gui elements, I think we may mix two
different issues:
 * The first bidi support I implemented some three years ago:
   - Contained only the tiny function in src/font.cpp (in HAVE_FRIBIDI)
   - Do not touch directly any gui element code.
   - Depends on fribidi implementing the Unicode BIDI algorithm.
   - Provides correct text direction which makes the game playable.

 * Later I implemented text justification code:
   - It has nothing to do with fribidi itself.
   - It makes the menus/dialogs, etc more readable (right justified
     text for bidi languages.
   - It is scattered in various gui classes (search for rtl, is_rtl,
     current_language_rt(), etc.)
   - It is ugly (OK, it was complex enough even before my rtl code).
   - It has (minor display) bugs -- just for fun, while using Hebrew
     try to hover over the titles of any table (e.g: Menu->Status Table)
     and look at the columns highlighting... (yes, now you know who to
     blame for this).

So:
  - Killing fribidi -- no wesnoth for Hebrew/Arabic/Farsi.
  - Killing rtl -- wesnoth can still be played but looks bit
    awkward (wrong justification) -- can be tolerated until
    adaptation to new widget system is being developed.

BTW: if the widgets are going to be rewritten, it would make life *A LOT*
     easier if each of them has a correct clipping rectangle -- one of
     the hardest jobs I had back then, was to fix the clipping rectangles
     which were originally from the top/left corner of the widget to the
     bottom/right corner of the *screen* -- this mistake didn't affect
     left justified text (e.g: English), but completely relocated right
     justified text until I fixed it.

OK, sorry for the long post, back to work.

-- 
Oron Peled                                 Voice: +972-4-8228492
[email protected]                  http://users.actcom.co.il/~oron
"We spend the first twelve months of our children's lives teaching them
to walk and talk and the next twelve years telling them to sit down and
shut up."  -- Phyllis Diller


_______________________________________________
Wesnoth-dev mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-dev

Reply via email to