Index: emacs/src/xdisp.c diff -c emacs/src/xdisp.c:1.1016 emacs/src/xdisp.c:1.1017 *** emacs/src/xdisp.c:1.1016 Tue May 31 21:54:52 2005 --- emacs/src/xdisp.c Tue May 31 22:46:22 2005 *************** *** 8352,8359 **** multiple_frames = CONSP (tail); /* Switch to the buffer of selected window of the frame. Set up ! mode_line_noprop_ptr so that display_mode_element will output into it; ! then display the title. */ record_unwind_protect (unwind_format_mode_line, format_mode_line_unwind_data (current_buffer)); --- 8352,8359 ---- multiple_frames = CONSP (tail); /* Switch to the buffer of selected window of the frame. Set up ! mode_line_target so that display_mode_element will output into ! mode_line_noprop_buf; then display the title. */ record_unwind_protect (unwind_format_mode_line, format_mode_line_unwind_data (current_buffer)); *************** *** 15672,15677 **** --- 15672,15678 ---- { struct it it; struct face *face; + int count = SPECPDL_INDEX (); init_iterator (&it, w, -1, -1, NULL, face_id); prepare_desired_row (it.glyph_row); *************** *** 15682,15687 **** --- 15683,15693 ---- /* Force the mode-line to be displayed in the default face. */ it.base_face_id = it.face_id = DEFAULT_FACE_ID; + record_unwind_protect (unwind_format_mode_line, + format_mode_line_unwind_data (NULL)); + + mode_line_target = MODE_LINE_DISPLAY; + /* Temporarily make frame's keyboard the current kboard so that kboard-local variables in the mode_line_format will get the right values. */ *************** *** 15689,15694 **** --- 15695,15702 ---- display_mode_element (&it, 0, 0, 0, format, Qnil, 0); pop_frame_kboard (); + unbind_to (count, Qnil); + /* Fill up with spaces. */ display_string (" ", Qnil, Qnil, 0, 0, &it, 10000, -1, -1, 0);
_______________________________________________ Emacs-diffs mailing list Emacs-diffs@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-diffs