]> git.eshelyaron.com Git - emacs.git/commitdiff
Protect the bidi iterator against zero bidi properties.
authorEli Zaretskii <eliz@gnu.org>
Thu, 18 Aug 2011 18:46:02 +0000 (21:46 +0300)
committerEli Zaretskii <eliz@gnu.org>
Thu, 18 Aug 2011 18:46:02 +0000 (21:46 +0300)
 src/bidi.c (bidi_get_type): If bidi_type_table reports zero as the
 character bidirectional type, use STRONG_L instead.  Fixes crashes
 in a buffer produced by `describe-categories'.

src/ChangeLog
src/bidi.c

index 037a4b28a9eb6de9743e5de5fc4b15315f46f714..2b5b6fd060242e585fc3533282d9b125f99e33b0 100644 (file)
@@ -1,5 +1,9 @@
 2011-08-18  Eli Zaretskii  <eliz@gnu.org>
 
+       * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
+       character bidirectional type, use STRONG_L instead.  Fixes crashes
+       in a buffer produced by `describe-categories'.
+
        * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
        members before the level stack, so they would be saved and
        restored when copying iterator state.  Fixes incorrect reordering
index c0eee33ab3f26f1a4ac81f400fb307f5f5d2dda7..7517eca5aed3478e3cfba0007583cd2748480565 100644 (file)
@@ -108,6 +108,8 @@ bidi_get_type (int ch, bidi_dir_t override)
     abort ();
 
   default_type = (bidi_type_t) XINT (CHAR_TABLE_REF (bidi_type_table, ch));
+  if (default_type == 0)
+    default_type = STRONG_L;
 
   if (override == NEUTRAL_DIR)
     return default_type;