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

Re: fribidi question



On Sat, 5 Jan 2002, Chahine M. Hamila wrote:
> Salam,
> Akka 1.0 is really close, one issue is left before I announce the public
> testing phase.
> All but one bugs I am aware of are fixed, endian-related issues aside
> which I will fix as soon as I get my hands on a GNU/Linux x86, all
> functionalities scheduled for version 1.0 are now in and running.

I have been curious about that, whats the exact problem? (reply me in 
private if needed)

> The bug is in computing the cursor position when approximating bidi
> (yes, bidi approximation was finally included and Akka has become a very
> extended superset of Acon).

Good news, I'm really waiting to see what it will do, I know the 
problems of simulating a bidi console well...

> I am using fribidi to approximate the bidi algorithm on a console.
> There is something that escapes me though. My understanding was that in
> the reordering function
> void
>      fribidi_log2vis(/* input */
>                      FriBidiChar *str,
>                      int len,
>                      FriBidiCharType *pbase_dir,
>                      /* output */
>                      FriBidiChar *visual_str,
>                      gint16      *position_L_to_V_list,
>                      gint16      *position_V_to_L_list,
>                      gint8       *embedding_level_list
>                      )
> the last element of position_L_to_V_list would give the position of the
> last element in the visual string visual_str output. It seems I got it
> wrong.

You are right, the last element of L_to_V map is the place of the last 
character of input str, in visual_str.

> Please someone indicate me how the cursor position computation is done,
> or at least, how the last character of the logical string can be located
> in the visual string.

"position_L_to_V_list[len - 1]", and please get fribidi-0.10.0, I have 
altered the types for some parameters their, in this case, 
postition_L_to_V_list has type FriBidiStrIndex which has been 
typedefed as int, then 32bit, not 16, try to use the new interface 
please.

And run "fribidi --caprtl --ltov" to findout what L_to_V map does.

> Thanks,
> Chahine

Yours,
-- 
Behdad
16 Dey 1380, 2002 Jan 6

[Finger for Geek Code]