Hi Frédéric, > I guess Arabic shaping is doable through presentation form characters, > because the latter are character inherited from legacy standards using > them in such solutions. But if you want to support other “arabic like” > scripts (like Syriac, N’ko), or even some LTR complex scripts, like > Myanmar or Khmer, this “solution” cannot work, because no equivalent of > “presentation form characters” exists for these scripts
Unfortunately my knowledge ends here, I'm not familiar with shaping for Syriac and other similar scripts. I'd really appreciate input from experts here. I outline in the document problems that arise from the terminal emulator performing shaping on its contents in "explicit" mode, which is to be used by Emacs and others. The terminal emulator is not aware of the characters that are chopped off at the edge of the screen, required for shaping. The terminal emulator is not aware of which characters happen to be placed next to each other, but belong to semantically different UI elements, that is, shouldn't be shaped. (And as a side note, FriBidi doesn't provide a method for doing shaping on _visual_ order. I'm unsure about other libraries, and unsure if there's an algorithm for it at all.) Honestly, I have no idea how to best address all these problems at once. This is where we can think of extensions "expliti mode level 2", use control characters that explicitly specify how to shape certain glyphs. This is subject to further research. cheers, egmont