Martin Duerst | 22 Nov 02:30
Picon
Gravatar

Re: state of BIDI within stable GNU emacs (UTF8) nikud

At 13:53 05/11/21, Eli Zaretskii wrote:

 >I once wrote here the reason: Pango, like fribidi, is a batch-mode
 >reordering library: you hand it a buffer with text and it returns it
 >reordered for display.
 >
 >By contrast, Emacs needs a reordering function that could be called
 >repeatedly, and will on every call return the next character in the
 >visual order.  This is because the Emacs display engine walks the
 >buffer one character at a time and decides how to display it based on
 >data structures built by the application.

It looks to me like you could just use fribidi or so, with an
additional layer that caches the batch-mode results and returns
them one-by-one. You'd want to cache quite a bit of stuff even
in a character walking implementation, I guess, although there
are probably some shortcuts you can make (haven't thought about
that yet in detail).

 >I wrote such a sequential version of bidi reordering, and it was
 >integrated into redisplay on a special branch of Emacs CVS.  But no
 >one had time to debug it and expand it, unfortunately.

Can you give a definitive pointer (ideally URI) to that branch?
Thanks!

Regards,    Martin. 

Gmane