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:
parent
99852628a8
commit
5930fe974d
@ -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.
|
||||
|
12
src/bidi.c
12
src/bidi.c
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user