> From: Egmont Koblinger <[email protected]> > Date: Wed, 30 Jan 2019 14:36:42 +0100 > Cc: [email protected] > > - GNU Emacs reshuffles the characters according to the BiDi algorithm, > expecting that the terminal emulator doesn't do any BiDi.
Yes, users are told to disable bidi reordering of the terminal, if the terminal supports that. > - It doesn't do Arabic shaping. It doesn't do _any_ shaping. Complex script shaping is left to the terminal, because it's impossible to do shaping in any reasonable way without controlling the fonts being used and accessing the font information, and this is not possible when you run on a terminal -- the user configures the terminal emulator, and the emulator chooses the fonts it likes/needs according to that configuration. (Emacs does support complex script shaping on GUI displays.) > - When it comes to visually wrapping a line because it doesn't fit in > the current width, Emacs goes its own way which doesn't match what the > Unicode BiDi algorithm says. Yes, this deviation is documented in the Emacs manuals. The reason for that is that the Emacs implementation of the UBA reorders characters on the fly (i.e., it implements a function that can be called character by character, and returns the next character in the visual order). This was done due to a special structure of the Emacs display engine and efficiency considerations. In practice, this problem happens very rarely.

