diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/bidi.c | 13 |
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) |