On 30 May 2001, Juliusz Chroboczek wrote:
> Robert de Bath:
>
> RB> Currently I've done this as a combining character ie:
>
> RB> WO2: previous character has width 2.
>
> I think this is a bad idea. When the terminal emulator receives WO2,
> it needs to display a double-width glyph after it has already
> displayed a single-width one, which will complicate the implementation
> and cause flicker.
Actually that's probably not true.
Assuming you're writing to a bitmapped screen you should have a seperate
text buffer and be using a lazy algorithm to update the bitmap. So the
narrow character won't even make it to the frame buffer.
If you're not using a text buffer you could be running at a hundredth
the speed you should be. (this is a measured statistic!) But even at
that speed you're probably over 10000 cps which is _well_ beyond the
flicker range.
> Of course, the Unicode folks have already imposed the implementation
> penalty by encoding combining characters after the base character, but
> that's no excuse for us f*cking up too.
Unicode is not designed for ordinary text terminals but it's not really
a star up you just have to do it in the text buffer rather than using
tempoary state. It probably ends up a tiny bit simpler because the state
information is stored in the text buffer where it's normal screen state.
It's the actual existance of combining characters (or width overrides)
that's the penalty not either of these encodings.
--
Rob. (Robert de Bath <rdebath @ poboxes.com>)
<http://www.cix.co.uk/~mayday>
-
Linux-UTF8: i18n of Linux on all levels
Archive: http://mail.nl.linux.org/linux-utf8/