1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-10 15:56:18 +00:00

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.
This commit is contained in:
Eli Zaretskii 2010-04-08 20:35:10 +03:00
parent 99852628a8
commit 5930fe974d
2 changed files with 12 additions and 5 deletions

View File

@ -1,3 +1,8 @@
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.

View File

@ -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)