[FriBidi] Implementation of X6 in the FriBidi library

Behdad Esfahbod behdad at behdad.org
Mon Sep 28 12:58:12 PDT 2009


Hi Eli,

I'm not sure I understand the issue you are raising completely.  However, I 
think it's a non-issue since BN characters are conceptually removed in X9, so 
it doesn't matter.  However, there is a change around these rules coming in 
the next update to UAX#9 that explicitly supports the code as is, see:

   http://www.unicode.org/reports/tr9/tr9-20.html

Does that address your concern?

behdad

On 09/28/2009 01:17 PM, Eli Zaretskii wrote:
> Hi,
>
> Sorry if this is a FAQ, and please point me at it if it is.
>
> The file fribidi-bidi.c in the FriBidi library has this code:
>
>      for_run_list (pp, main_run_list)
>      {
>        FriBidiCharType this_type = RL_TYPE (pp);
>        if (FRIBIDI_IS_EXPLICIT_OR_BN (this_type))
> 	{
> 	  ...
> 	}
>        else
> 	{
> 	  /* X6. For all types besides RLE, LRE, RLO, LRO, and PDF:
> 	     a. Set the level of the current character to the current
> 	     embedding level.
> 	     b. Whenever the directional override status is not neutral,
> 	     reset the current character type to the directional override
> 	     status. */
> 	  RL_LEVEL (pp) = level;
> 	  if (!FRIBIDI_IS_NEUTRAL (override))
> 	    RL_TYPE (pp) = override;
> 	}
>
> Unless I'm misreading the code, this means that X6 is not applied to
> characters whose original type is "WEAK BN".  However, UAX#9 does not
> exempt WEAK BN characters from the override, so this looks like being
> against the UAX#9 rules.
>
> Am I missing something? are there good reasons for behaving like that?
>
> TIA
> _______________________________________________
> fribidi mailing list
> fribidi at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/fribidi
>


More information about the fribidi mailing list