Bidi paragraph direction in terminal emulators

Egmont Koblinger via Unicode unicode at
Sat Feb 9 13:03:21 CST 2019

On Sat, Feb 9, 2019 at 7:56 PM Eli Zaretskii <eliz at> wrote:

> I'm probably missing something, because I don't see the grave problems
> you hint at.  Any width provided back by a shaper can be rounded to
> the nearest integral character cell, so your canvas can still remain
> rectangular.

Let's suppose a utility outputs these two lines of text:

whereas "abcdefg" are these English letters themselves, but "complex"
is a word of some language requiring complex script rendering, taking
up 7 logical cells (because that's what wcwidth() says). Also, "|" is
the pipe symbol, or a vertical box drawing line, whatever.

Now let's assume that harfbuzz tells you that the desired width for
rendering this "complex" word is 5.3 times the width of the character
cell. Or 8.6 times it. How to proceed? How will the "|" bars align up,
and thus mc's two-panel layout, tmux's vertical split etc. not fall
apart? In the latter case, when the width requested by harfbuzz is
bigger than the designated width, what to with characters that "fall
off" at the right edge of the terminal?


More information about the Unicode mailing list