diff options
author | Eli Zaretskii <eliz@gnu.org> | 2022-03-15 21:21:20 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2022-03-15 21:21:20 +0200 |
commit | 5e8fbf7789613511061d78a42ca7f91bc831f786 (patch) | |
tree | 6dc1d97a143e9136f279e5d884a425c12bd5b182 /src | |
parent | d932e256a497d80de9dbcea6a8e019d2cb063429 (diff) | |
download | emacs-5e8fbf7789613511061d78a42ca7f91bc831f786.tar.gz |
Clean up implementation of N0 per UAX#9
* src/bidi.c (bidi_resolve_brackets): Instead of requiring
prev_for_neutral's type to be known, fall back on SOS, per
the UBA.
Diffstat (limited to 'src')
-rw-r--r-- | src/bidi.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/bidi.c b/src/bidi.c index 44b7422bdc6..4d2c74b17cd 100644 --- a/src/bidi.c +++ b/src/bidi.c @@ -2927,8 +2927,11 @@ bidi_resolve_brackets (struct bidi_it *bidi_it) else if (bidi_it->bracket_enclosed_type == STRONG_L /* N0c, N0d */ || bidi_it->bracket_enclosed_type == STRONG_R) { - eassert (bidi_it->prev_for_neutral.type != UNKNOWN_BT); - switch (bidi_it->prev_for_neutral.type) + bidi_type_t prev_type_for_neutral = bidi_it->prev_for_neutral.type; + + if (prev_type_for_neutral == UNKNOWN_BT) + prev_type_for_neutral = embedding_type; + switch (prev_type_for_neutral) { case STRONG_R: case WEAK_EN: |