Re: [Fresco-devel] Babylon Strings

Tobias Hunger <[email protected]> Fri, 18 Jul 2003 17:28:29 +0200
Newsgroups gmane.comp.video.fresco.devel
Message-ID <[email protected]>
Evan Martin <[email protected]> wrote:
> This is simplifying it a little; vowel markings, for example, are
> combining characters that follow the consonant.  Would the visual
> order rearrange those, too?

Yes, I know. Unicode is a very complex beast. That's precisely why
I want everything in one nice package called Babylon:-)

combining characters are a bit strange... The standard specifies
that "Combining marks applied to right-to-left base chracter will at
this point precede their base character. If the rendering engine expects
them to follow the base characters in the final display process, then
the ordering of the marks and the base character must be reversed"
(Unicode 3.0 page 66).

Since I want the berlin server to be as unicode-agnostic as possible
that's what I'm going to do.

> There are many hard problems with bidi that simply having the visual
> order won't solve; for example, line-breaking.

That's right. But without knowing the sequence in which the characters
will actually need to get rendered linebreaking does not work. Let's
get bidir worked out and go from there.

> Another case study: cut and paste.  Suppose I have this sentence again
> and I click and drag the mouse to make a selection from left to right
> along the region underlined:
>   this is a sentence BETEK BUTKAM with words.
>   ^^^^^^^^^^^^^^^^^^^^^^^^^
> What I should get in the copy buffer, and what should be selected
> visually, is this:
>   this is a sentence BETEK BUTKAM with words.
>   ^^^^^^^^^^^^^^^^^^       ^^^^^^

Yes, we are going to (try to) hide that inside Babylon as well, at least
as far as that can be hidden.

> To summarize: bidi is really hard to do right.  Most applications
> shouldn't need to know the visual order, and the code that will need to
> to know it (such as the text layout engine of the text widget) will need
> to know more than just the visual order.

Bidir is hard, that's why I want it done right in one place (Babylon) and
not scattered around the server sources. That way it will be easier to
maintain (and replace).

> (Apologies in advance if I got either the language or the bidi algorithm
> wrong; I just read about this recently and I'm going from memory.)

You seem to have an excellent memory. I'm looking forward to more mails
from you.

-- 
Gruss,
Tobias

------------------------------------------------------------
Tobias Hunger           The box said: 'Windows 95 or better'
[email protected]                      So I installed Linux.
------------------------------------------------------------
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE/GBIcv0FZW3NyoqURAr4ZAKCB5r8l7jj5Ob+elxiGPTpQBG9TrgCfSY6+
ZtHVd9MZHrc7G8Hw9dAUchQ=
=+w6B
-----END PGP SIGNATURE-----