Markus Kuhn wrote:
> I believe the only practical solution for this problem is to implement
> BACKSPACE in UTF-8 terminal emulators such that it moves one *character*
> to the left, not one *cell*.

I agree. The objects being displayed are characters. It does not make
sense for a user or for applications to position the cursor in the middle
of a character, or after 1/3 or 2/3 of a character.

> We have little choice if we want to keep the kernel free of
> locale-dependent monsters such as wcwidth().

There is also the problem of the TAB: Currently linux/drivers/char/n_tty.c
also transforms a TAB to a sequences of spaces, and an erase of a TAB to
a sequence of BACKSPACEs. If we keep it this way, the kernel must still
learn to distinguish single-width and double-width characters, in order
to keep a notion of "current column number".

What is the reason for treating TAB at the TTY level? Why can't TAB be
treated like a graphic character of unknown width and be passed to the
device driver unchanged?

Bruno


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

Reply via email to