summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2022-03-15 21:21:20 +0200
committerEli Zaretskii <eliz@gnu.org>2022-03-15 21:21:20 +0200
commit5e8fbf7789613511061d78a42ca7f91bc831f786 (patch)
tree6dc1d97a143e9136f279e5d884a425c12bd5b182 /src
parentd932e256a497d80de9dbcea6a8e019d2cb063429 (diff)
downloademacs-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.c7
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: