Commit 5930fe97 authored by Eli Zaretskii's avatar Eli Zaretskii

Fix crash due to incorrect resolution of type of NSM characters (bug#5858).

 bidi.c (bidi_resolve_weak): Use prev.type_after_w1, instead of
 prev.orig_type, for resolving type of NSM.
parent 99852628
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.
......
......@@ -1347,12 +1347,14 @@ bidi_resolve_weak (struct bidi_it *bidi_it)
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)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment