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

Fwd: Bidi In Konsole



Greetings,

Konsole that shipped with KDE 3.0 had bidi support in it, but they're planning 
to drop bidi from it in KDE 3.1, since its implementation is too broken.

Does anybody know of any terminal that handles bidi well enough, and how it is 
done there? I've seen some recent discussion about mlterm, though I never 
tried it myself. How is it with bidi text writing and selection? Perhaps 
Konsole could use mlterm's implementation...?


----------  Forwarded Message  ----------

Subject: Re: kdebase/konsole/konsole
Date: Saturday 04 May 2002 20:42
From: Waldo Bastian <bastian at kde dot org>
To: Meni Livne <livne at kde dot org>, kde-cvs at kde dot org

On Saturday 04 May 2002 07:47 am, Meni Livne wrote:
> On Saturday 04 May 2002 17:33, Waldo Bastian wrote:
> > Modified Files:
> >          TEWidget.cpp
> > Log Message:
> > Don't do bidi inside konsole.
>
> Why not? Should the terminal really be an exception?
> What if a user needs to view bidi filenames in his mounted Windows
> partition, or read his bidi email through pine, or view text files with
> less? Or suppose that in the future man pages will get translated into an
> RTL language. They would look O.K if viewed through KHelpCenter, but
> reversed if viewed by the man command in a konsole.
>
> I think we should at least ask groups like ArabEyes and FarsiKDE for their
> opinion. I think they would prefer having bidi stay, or at least have it
> configurable.

The problem is that the current implementation is horribly broken. Konsole
emulates a terminal and it assumes that the screen is made out of rows and
columns, e.g. 80x25, each position can contain a single character. Those
squares are filled from left to right, but if they are filled with a RTL
language they get reversed when painted on the screen. That's a problem
because now the characters shown on the screen no longer match the square
such character belongs too. Example:

It is stored like this:
0 1 2 3 4 5 6 7 8
R T L - T E X T

But shown like:
0 1 2 3 4 5 6 7 8
T X E T - L T R

When you now try to select "LTR" you would select column 5, 6 and 7 and you
would end up with "EXT" (Or "TXE") instead of "LTR"

I would really like to know how this is handled in traditional RTL terminals.

Cheers,
Waldo
--
bastian at kde dot org  |   SuSE Labs KDE Developer  |  bastian at suse dot com

-------------------------------------------------------