Emacs' implementation of the bidirectional algorithm

Eli Zaretskii via Unicode unicode at unicode.org
Sat Jul 1 13:19:45 CDT 2017

> Date: Sat, 1 Jul 2017 16:36:52 +0300
> From: Itai Berli via Unicode <unicode at unicode.org>
> Emacs claims to fully conform to the Unicode Bidirectional Algorithm
> 8.0.0 (see sections 22.19 'Bidirectional Editing' and 37.26
> 'Bidirectional Display' of the Emacs manual)

This is somewhat inaccurate.  For the record, the actual text of
section 22.19 if the Emacs User manual is:

  Emacs implements the Unicode Bidirectional Algorithm described in the
  Unicode Standard Annex #9, for reordering of bidirectional text for

The actual text of section 37.26 of the Emacs Lisp Reference manual

  In performing this “bidirectional reordering”, Emacs follows the
  Unicode Bidirectional Algorithm (a.k.a. UBA), which is described in
  Annex #9 of the Unicode standard (<http://www.unicode.org/reports/tr9/>).
  Emacs provides a “Full Bidirectionality” class implementation of the
  UBA, consistent with the requirements of the Unicode Standard v8.0.

The "Full Bidirectionality class" part refers to section 4.2 of UAX#9,
and specifically to the fact that all of the explicit directional
formatting characters are supported, including the isolates.

More information about the Unicode mailing list