emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r106305: Fix bug #9963 with abort in


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r106305: Fix bug #9963 with abort in "temacs -nw".
Date: Sun, 06 Nov 2011 20:21:52 +0200
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 106305
fixes bug(s): http://debbugs.gnu.org/9963
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Sun 2011-11-06 20:21:52 +0200
message:
  Fix bug #9963 with abort in "temacs -nw".
  
   src/xdisp.c (init_iterator, reseat_to_string): Don't set the
   iterator's bidi_p flag if Vpurify_flag is non-nil.
   (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
   return Qleft_to_right.
modified:
  src/ChangeLog
  src/xdisp.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2011-11-06 03:59:53 +0000
+++ b/src/ChangeLog     2011-11-06 18:21:52 +0000
@@ -1,3 +1,10 @@
+2011-11-06  Eli Zaretskii  <address@hidden>
+
+       * xdisp.c (init_iterator, reseat_to_string): Don't set the
+       iterator's bidi_p flag if Vpurify_flag is non-nil.  (Bug#9963)
+       (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
+       return Qleft_to_right.
+
 2011-11-06  Chong Yidong  <address@hidden>
 
        * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2011-11-04 20:01:06 +0000
+++ b/src/xdisp.c       2011-11-06 18:21:52 +0000
@@ -2763,9 +2763,13 @@
       /* Do we need to reorder bidirectional text?  Not if this is a
         unibyte buffer: by definition, none of the single-byte
         characters are strong R2L, so no reordering is needed.  And
-        bidi.c doesn't support unibyte buffers anyway.  */
+        bidi.c doesn't support unibyte buffers anyway.  Also, don't
+        reorder while we are loading loadup.el, since the tables of
+        character properties needed for reordering are not yet
+        available.  */
       it->bidi_p =
-       !NILP (BVAR (current_buffer, bidi_display_reordering))
+       NILP (Vpurify_flag)
+       && !NILP (BVAR (current_buffer, bidi_display_reordering))
        && it->multibyte_p;
 
       /* If we are to reorder bidirectional text, init the bidi
@@ -6136,8 +6140,12 @@
     it->multibyte_p = multibyte > 0;
 
   /* Bidirectional reordering of strings is controlled by the default
-     value of bidi-display-reordering.  */
-  it->bidi_p = !NILP (BVAR (&buffer_defaults, bidi_display_reordering));
+     value of bidi-display-reordering.  Don't try to reorder while
+     loading loadup.el, as the necessary character property tables are
+     not yet available.  */
+  it->bidi_p =
+    NILP (Vpurify_flag)
+    && !NILP (BVAR (&buffer_defaults, bidi_display_reordering));
 
   if (s == NULL)
     {
@@ -19460,7 +19468,10 @@
     }
 
   if (NILP (BVAR (buf, bidi_display_reordering))
-      || NILP (BVAR (buf, enable_multibyte_characters)))
+      || NILP (BVAR (buf, enable_multibyte_characters))
+      /* When we are loading loadup.el, the character property tables
+        needed for bidi iteration are not yet available.  */
+      || !NILP (Vpurify_flag))
     return Qleft_to_right;
   else if (!NILP (BVAR (buf, bidi_paragraph_direction)))
     return BVAR (buf, bidi_paragraph_direction);


reply via email to

[Prev in Thread] Current Thread [Next in Thread]