> How will the console know when it has to write up to down, right to left

I would argue strongly that we do NOT want the console to do anything
other than traditional VT100-style left-to-right text output. Bidi or
quaddi output are best left to specialized applications, otherwise we
introduce a huge mess by getting the terminal writing direction mode
desynchronized with that the application believes to be in. Bidi and
Quaddi work only if there is editor support, and if there is, then the
editor can easily also implement the full cursor control at application
level.

Sure, bidi terminal support sort of works a bit with restrictions for
trivial applications such as cat in confined demonstrations, but you
can't neatly implement the full Unicode bidi semantics in classic
terminal semantics (because terminals "think" in terms of cursor
coordinates and not in terms of self-wraping paragraphs). I simply don't
feel this is the way to go, and the fact that there has been an ECMA
standard for multi-directional VT100-style terminals for over 10 years
and there still does not exist even a *single* widely-used
implementation or application for it suggests that I'm not completely
alone with this view.

If we really want a terminal concept that handles Unicode bidi nicely
locally, the resulting terminal concept will look much more like a sort
of word processor or HTML editor. In it, the application can still
monitor, echo and intercept all keystrokes, but can also via some nifty
new ESC-sequence protocol rewrite the document currently being
displayed, preferably in a way such that a terminal put into echo mode
will behave just like a document editor. Such a paragraph-mode terminal
would have not just a notion of a current screen matrix and cursor
position in it, it would also have a notion of a "current paragraph" in
which the cursor is located, and which is constantly reformatted in the
terminal as the content of the paragraph gets modified. It is certainly
doable and might be an exciting project, but it would be *very* far away
from the old tty/VT100 style terminal semantics and would require
substantial modification to applications. (Libraries like readline would
actually become much simpler, as most of the relevant functionality
would be implemented then in the terminal, and the application would
just read from the terminal the resulting paragraph when the cursor
leaves the paragraph, etc. Applications could to a large degree become
ignorant of details such as directional changes and ligature
substitution, which would be done autonomously by the terminal.).

The question is whether we want to have such a revolutionaly terminal
concept for really full-featured support for "complex scripts".

Markus

-- 
Markus G. Kuhn, Computer Laboratory, University of Cambridge, UK
Email: mkuhn at acm.org,  WWW: <http://www.cl.cam.ac.uk/~mgk25/>

--
Linux-UTF8:   i18n of Linux on all levels
Archive:      http://mail.nl.linux.org/linux-utf8/

Reply via email to