X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/6bd1e2203486ace170f5de15cf7d66146fc8cc87..37b9099068c10383e959ee366a52a22516846163:/src/xdisp.c diff --git a/src/xdisp.c b/src/xdisp.c index 123303ef8d..7dc99e1c28 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -2946,7 +2946,7 @@ init_iterator (struct it *it, struct window *w, character properties needed for reordering are not yet available. */ it->bidi_p = - NILP (Vpurify_flag) + !redisplay__inhibit_bidi && !NILP (BVAR (current_buffer, bidi_display_reordering)) && it->multibyte_p; @@ -6641,7 +6641,7 @@ reseat_to_string (struct it *it, const char *s, Lisp_Object string, loading loadup.el, as the necessary character property tables are not yet available. */ it->bidi_p = - NILP (Vpurify_flag) + !redisplay__inhibit_bidi && !NILP (BVAR (&buffer_defaults, bidi_display_reordering)); if (s == NULL) @@ -10531,8 +10531,8 @@ ensure_echo_area_buffers (void) suitable buffer from echo_buffer[] and clear it. If WHICH < 0, set echo_area_buffer[1] to echo_area_buffer[0], so - that the current message becomes the last displayed one, make - choose a suitable buffer for echo_area_buffer[0], and clear it. + that the current message becomes the last displayed one, choose a + suitable buffer for echo_area_buffer[0], and clear it. Value is what FN returns. */ @@ -10566,7 +10566,7 @@ with_echo_area_buffer (struct window *w, int which, echo_area_buffer[this_one] = Qnil; } - /* Choose a suitable buffer from echo_buffer[] is we don't + /* Choose a suitable buffer from echo_buffer[] if we don't have one. */ if (NILP (echo_area_buffer[this_one])) { @@ -21194,7 +21194,7 @@ See also `bidi-paragraph-direction'. */) || 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)) + || redisplay__inhibit_bidi) return Qleft_to_right; else if (!NILP (BVAR (buf, bidi_paragraph_direction))) return BVAR (buf, bidi_paragraph_direction); @@ -21318,7 +21318,7 @@ the `bidi-class' property of a character. */) /* When we are loading loadup.el, the character property tables needed for bidi iteration are not yet available. */ - || !NILP (Vpurify_flag)) + || redisplay__inhibit_bidi) return Qnil; validate_subarray (object, from, to, SCHARS (object), &from_pos, &to_pos); @@ -21346,7 +21346,7 @@ the `bidi-class' property of a character. */) /* When we are loading loadup.el, the character property tables needed for bidi iteration are not yet available. */ - || !NILP (Vpurify_flag)) + || redisplay__inhibit_bidi) return Qnil; set_buffer_temp (buf); @@ -31552,7 +31552,12 @@ A value of t means resize them to fit the text displayed in them. A value of `grow-only', the default, means let mini-windows grow only; they return to their normal size when the minibuffer is closed, or the echo area becomes empty. */); - Vresize_mini_windows = Qgrow_only; + /* Contrary to the doc string, we initialize this to nil, so that + loading loadup.el won't try to resize windows before loading + window.el, where some functions we need to call for this live. + We assign the 'grow-only' value right after loading window.el + during loadup. */ + Vresize_mini_windows = Qnil; DEFVAR_LISP ("blink-cursor-alist", Vblink_cursor_alist, doc: /* Alist specifying how to blink the cursor off. @@ -31760,6 +31765,12 @@ display table takes effect; in this case, Emacs does not consult DEFVAR_LISP ("redisplay--variables", Vredisplay__variables, doc: /* A hash-table of variables changing which triggers a thorough redisplay. */); Vredisplay__variables = Qnil; + + DEFVAR_BOOL ("redisplay--inhibit-bidi", redisplay__inhibit_bidi, + doc: /* Non-nil means it is not safe to attempt bidi reordering for display. */); + /* Initialize to t, since we need to disable reordering until + loadup.el successfully loads charprop.el. */ + redisplay__inhibit_bidi = true; }