aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bidi.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/bidi.c b/src/bidi.c
index 9b714543dd2..e7787054e23 100644
--- a/src/bidi.c
+++ b/src/bidi.c
@@ -1919,8 +1919,6 @@ bidi_resolve_explicit (struct bidi_it *bidi_it)
1919 { 1919 {
1920 eassert (bidi_it->prev.charpos == bidi_it->charpos - 1); 1920 eassert (bidi_it->prev.charpos == bidi_it->charpos - 1);
1921 prev_type = bidi_it->prev.orig_type; 1921 prev_type = bidi_it->prev.orig_type;
1922 if (prev_type == FSI)
1923 prev_type = bidi_it->type_after_wn;
1924 } 1922 }
1925 } 1923 }
1926 /* Don't move at end of buffer/string. */ 1924 /* Don't move at end of buffer/string. */
@@ -1935,8 +1933,6 @@ bidi_resolve_explicit (struct bidi_it *bidi_it)
1935 emacs_abort (); 1933 emacs_abort ();
1936 bidi_it->bytepos += bidi_it->ch_len; 1934 bidi_it->bytepos += bidi_it->ch_len;
1937 prev_type = bidi_it->orig_type; 1935 prev_type = bidi_it->orig_type;
1938 if (prev_type == FSI)
1939 prev_type = bidi_it->type_after_wn;
1940 } 1936 }
1941 else /* EOB or end of string */ 1937 else /* EOB or end of string */
1942 prev_type = NEUTRAL_B; 1938 prev_type = NEUTRAL_B;
@@ -2091,10 +2087,17 @@ bidi_resolve_explicit (struct bidi_it *bidi_it)
2091 if (typ1 != STRONG_R && typ1 != STRONG_AL) 2087 if (typ1 != STRONG_R && typ1 != STRONG_AL)
2092 { 2088 {
2093 type = LRI; 2089 type = LRI;
2090 /* Override orig_type, which will be needed when we come to
2091 examine the next character, which is the first character
2092 inside the isolate. */
2093 bidi_it->orig_type = type;
2094 goto fsi_as_lri; 2094 goto fsi_as_lri;
2095 } 2095 }
2096 else 2096 else
2097 type = RLI; 2097 {
2098 type = RLI;
2099 bidi_it->orig_type = type;
2100 }
2098 /* FALLTHROUGH */ 2101 /* FALLTHROUGH */
2099 case RLI: /* X5a */ 2102 case RLI: /* X5a */
2100 if (override == NEUTRAL_DIR) 2103 if (override == NEUTRAL_DIR)