[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Adding Bidi to Fvwm ?

On 21 Feb 2002 12:08:45 -0800, Nadim Shaikli wrote:
> With the recent work on multibyte support in Fvwm2 - has any thought been
> given to those languages that are right-to-left oriented (Arabic, Farsi,
> Hebrew, etc...) ?  In other words, have any considerations been given to
> the addition of Bidi (Bi-directionality) ?
>   http://www.unicode.org/unicode/reports/tr9/
> May I suggest a compile-time option of including Fribidi (open source Bidi
> library),
>   http://fribidi.sourceforge.net
> I'd be interested in adding Arabic support to Fvwm but that is very much
> hinged on the inclusion of Bidi (its a first-order requirement).  It would
> greatly simply life for me (and others I'm sure) if there was an option
> to include and enable Bidi without having to resort to hacks.
> For what its worth - the inclusion of Bidi will certainly increase Fvwm's
> user base, since it would be one of the few window-managers with FULL
> multibyte support; a BIG deal to those that are right-to-left'ies :-)
> Any takers ? Olivier ;-) ?

I don't know whether I will add bidi support, but I may try to start it.
At least I understand what this means. It is not trivial to immediately
understand why this is needed and even less trivial to understand that
it's all heuristics, there may be possible conflicts in any algorithms.
Examples of logical input / visual output.

  % echo "SHALOM, fvwm (SHALOM is hi in IVRIT!)." | fribidi -C CapRTL
                                 .(!IVRIT is hi in MOLAHS) fvwm ,MOLAHS
  % echo "hi 1-2 (english) is SHALOM 1-2 (IVRIT)." | fribidi -C CapRTL
  hi 1-2 (english) is IVRIT) 2-1 MOLAHS).
  # the second example seems like a bug in my fribidi, but maybe not

Actually, bidi is orthogonal to unicode and to aligment, i.e. it may be
applied to a normal 256-symbol charset, and, I think, we may assume it
only affects an order of symbols inside the string, not its alignment.

So, what I may do is to add --with-fribidi-{library,includes}, and try to
figure out where this bidi filter should be added. But I am not sure yet
what exact parameters should be used in all cases (MULTIBYTE or not) and
what are the conditions when bidi should be applied at all.