[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/xdisp.c,v
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/src/xdisp.c,v |
Date: |
Wed, 19 Mar 2008 15:02:02 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Stefan Monnier <monnier> 08/03/19 15:02:01
Index: xdisp.c
===================================================================
RCS file: /sources/emacs/emacs/src/xdisp.c,v
retrieving revision 1.1200
retrieving revision 1.1201
diff -u -b -r1.1200 -r1.1201
--- xdisp.c 10 Mar 2008 00:49:46 -0000 1.1200
+++ xdisp.c 19 Mar 2008 15:01:59 -0000 1.1201
@@ -9092,8 +9092,9 @@
static Lisp_Object Vmode_line_unwind_vector;
static Lisp_Object
-format_mode_line_unwind_data (obuf, save_proptrans)
- struct buffer *obuf;
+format_mode_line_unwind_data (struct buffer *obuf,
+ Lisp_Object owin,
+ int save_proptrans)
{
Lisp_Object vector, tmp;
@@ -9103,7 +9104,7 @@
Vmode_line_unwind_vector = Qnil;
if (NILP (vector))
- vector = Fmake_vector (make_number (7), Qnil);
+ vector = Fmake_vector (make_number (8), Qnil);
ASET (vector, 0, make_number (mode_line_target));
ASET (vector, 1, make_number (MODE_LINE_NOPROP_LEN (0)));
@@ -9117,6 +9118,7 @@
else
tmp = Qnil;
ASET (vector, 6, tmp);
+ ASET (vector, 7, owin);
return vector;
}
@@ -9133,6 +9135,10 @@
mode_line_string_face = AREF (vector, 4);
mode_line_string_face_prop = AREF (vector, 5);
+ if (!NILP (AREF (vector, 7)))
+ /* Select window before buffer, since it may change the buffer. */
+ Fselect_window (AREF (vector, 7), Qt);
+
if (!NILP (AREF (vector, 6)))
{
set_buffer_internal_1 (XBUFFER (AREF (vector, 6)));
@@ -9252,8 +9258,10 @@
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, 0));
+ format_mode_line_unwind_data
+ (current_buffer, selected_window, 0));
+ Fselect_window (f->selected_window, Qt);
set_buffer_internal_1 (XBUFFER (XWINDOW (f->selected_window)->buffer));
fmt = FRAME_ICONIFIED_P (f) ? Vicon_title_format : Vframe_title_format;
@@ -16924,7 +16932,7 @@
it.base_face_id = it.face_id = DEFAULT_FACE_ID;
record_unwind_protect (unwind_format_mode_line,
- format_mode_line_unwind_data (NULL, 0));
+ format_mode_line_unwind_data (NULL, Qnil, 0));
mode_line_target = MODE_LINE_DISPLAY;
@@ -17626,9 +17634,11 @@
/* Save things including mode_line_proptrans_alist,
and set that to nil so that we don't alter the outer value. */
record_unwind_protect (unwind_format_mode_line,
- format_mode_line_unwind_data (old_buffer, 1));
+ format_mode_line_unwind_data
+ (old_buffer, selected_window, 1));
mode_line_proptrans_alist = Qnil;
+ Fselect_window (window, Qt);
if (old_buffer)
set_buffer_internal_1 (XBUFFER (buffer));
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Kim F. Storm, 2008/03/08
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Miles Bader, 2008/03/09
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v,
Stefan Monnier <=
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Stefan Monnier, 2008/03/26
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Stefan Monnier, 2008/03/28