+2010-04-08 Eli Zaretskii <eliz@gnu.org>
+
+ * bidi.c (bidi_resolve_weak): Use prev.type_after_w1, instead of
+ prev.orig_type, for resolving type of NSM. (Bug#5858)
+
2010-04-08 Jan Djärv <jan.h.d@swipnet.se>
* xsettings.c (current_font, SYSTEM_FONT, XSETTINGS_FONT_NAME): New.
if (type == WEAK_NSM) /* W1 */
{
/* Note that we don't need to consider the case where the
- prev character has its type overridden by an RLO or LRO:
- such characters are outside the current level run, and
- thus not relevant to this NSM. Thus, NSM gets the
- orig_type of the previous character. */
+ prev character has its type overridden by an RLO or LRO,
+ because then either the type of this NSM would have been
+ also overridden, or the previous character is outside the
+ current level run, and thus not relevant to this NSM.
+ This is why NSM gets the type_after_w1 of the previous
+ character. */
if (bidi_it->prev.type != UNKNOWN_BT)
- type = bidi_it->prev.orig_type;
+ type = bidi_it->prev.type_after_w1;
else if (bidi_it->sor == R2L)
type = STRONG_R;
else if (bidi_it->sor == L2R)