Proposal for BiDi in terminal emulators

Richard Wordingham via Unicode unicode at
Sat Feb 2 05:41:35 CST 2019

On Fri, 1 Feb 2019 15:15:53 +0100
Egmont Koblinger via Unicode <unicode at> wrote:

> Hi Richard,
> On Fri, Feb 1, 2019 at 12:19 AM Richard Wordingham via Unicode
> <unicode at> wrote:
> > Cropped why?  If the problem is the truncation of lines, one can
> > simple store the next character.  
> Yup, trancation of line for example.
> I agree that one could "store the next character". We could extend the
> terminal emulation protocol where by some means you can specify that
> column 80 contains a letter X, and even though there's no column 81,
> an app can still tell the terminal emulator that it should imagine
> that column 81 contans the letter Y, and perform shaping accordingly.
> This will need to be done not just at the end of the terminal, but at
> any position, and for both directions. Think of e.g. a vertically
> split tmux. You should be able to tell that column 40 contains X which
> should be shaped as if column 41 contained Y, and column 41 contains Z
> which should be shaped as if column 40 contained A.
> What I canont see at all is how this could be "simply". Could you
> please elaborate on that? I don't find this simple at all!

I'm not conversant with the details of terminal controls and I haven't
used fields.  However, where I spoke of lines above, I believe you can
simply translate it to fields.  I don't know how one best handles
fields - are they a list, possibly of rows within fields, or are they
stored as cell attributes?

If one were doing it by cell attributes, and the example above were in
row 6, one might store some of the information below if 'Y' and 'A' do
not appear in the display.

Row 6 column 40: This is end of LTR paragraph, and treat as followed by Y

Row 6 column 41: This is end of RTL paragraph, and treat as followed by A

If storing attributes of rows within fields, the above information would
be stored for the row within the field.

If lines are wrapped, then you would probably want to store that fact
instead and access the character contents indirectly.


More information about the Unicode mailing list