Re: Re: emacs-bidi - funtional/ready, now what ?
Kamal Dalal <[email protected]>
| Newsgroups | gmane.emacs.bidi |
|---|---|
| Message-ID | <[email protected]> |
On Wed, Mar 05, 2003 at 10:45:46AM +0100, Alex Schroeder wrote: > > At the time the problem was this: The display engine moves through > the buffer character by character and decides how to display it. This > is the current architecture, and the display engine is a very delicate > piece of work, so this is not going to change unless somebody rewrites > alot of code. > > Therefore, we cannot use existing bidi algorithms, because these > expect a string instead of a stream of characters. Using a string, > one could implement the Unicode or a similar reordering algorithm > which returned a "visual order" string to display. But this > straightforward route is not acceptable if we want to integrate bidi > at the display engine level. > > We need a piece of code that hooks into the display engine and that > can return the next character to display, given a position in a > buffer. (The important part here is that this will probably not be > the character at that position when bidi reordering is in effect.) > This will require looking ahead, looking behind, applying algorithms, > and caching the result, so that when the display engine moves to the > next position in the buffer and wants to know what character to > display, less work is required. > > Anyway, that's the basic problem description. > > It seems that Eli has a stand-alone solution of this piece of code and > needs to integrate it into the display engine. That is hairy work. > If you are interested, ask Eli -- last time he was very willing to > send his code to parties interested in helping out. > An incremental bidi algorithm is very interesting. I went through the archives and could not find more information that shed more light on such an algorithm. Did I miss it ? Eli, perhaps you will be willing to share this algorithm. I am researching possible solutions for a bidi aware terminal for Windows (GPL) and such an algorithm may be very useful. Regards, Kamal Dalal