]> code.delx.au - gnu-emacs/commit
Fix bidi reordering of bracket characters in isolates.
authorEli Zaretskii <eliz@gnu.org>
Sat, 18 Oct 2014 12:47:57 +0000 (15:47 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 18 Oct 2014 12:47:57 +0000 (15:47 +0300)
commit6b247d287327777dfd29e20eac177c2005e99b45
treef7581b4e96b9ba0f2f475f15c888b718d0050a6d
parent605cfb8b7a4ef8f73ddc8f2de5c086f3a7455971
parentb5e71861a3b15de7651be4524f38337aa451bfd7
Fix bidi reordering of bracket characters in isolates.

 src/bidi.c (bidi_cache_find): Rename the argument NEUTRALS_OK to
 RESOLVED_ONLY; when non-zero, return from the cache only fully
 resolved states.  All callers changed.
 (CANONICAL_EQU): New macro.
 (PUSH_BPA_STACK): Use it to push onto the BPA stack the canonical
 equivalent of the paired closing bracket character.
 (bidi_find_bracket_pairs): Set the bracket_pairing_pos member to
 the default non-negative value, to be checked later in
 bidi_resolve_brackets.  Use CANONICAL_EQU to test candidate
 characters against those pushed onto the BPA stack.
 (bidi_record_type_for_neutral): New function.
 (bidi_resolve_brackets): Record next_for_neutral and
 prev_for_neutral when embedding level gets pushed.  Force
 resolution of bracket pairs when entering a level run that was not
 yet BPA-resolved.
 (bidi_resolve_neutral): Add assertions before calling
 bidi_resolve_neutral_1.
 (bidi_level_of_next_char): Remove the code that attempted to
 resolve unresolved neutrals; that is now done by
 bidi_resolve_neutral.
src/ChangeLog