aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Rudalics2012-08-14 10:44:24 +0200
committerMartin Rudalics2012-08-14 10:44:24 +0200
commit08908acaa6d4e2679cf2fc32c91c17906a4de639 (patch)
treeb2958f917124c082f606daf1b62bc4748550f60b /src
parente5b19827faaff8168889c9cf3c8f746fd67e6991 (diff)
downloademacs-08908acaa6d4e2679cf2fc32c91c17906a4de639.tar.gz
emacs-08908acaa6d4e2679cf2fc32c91c17906a4de639.zip
Don't call Fset_window_buffer from C code.
* frame.c (make_frame_without_minibuffer, make_minibuffer_frame) (delete_frame, Fmake_frame_invisible, Ficonify_frame): * minibuf.c (choose_minibuf_frame, read_minibuf): * w32fns.c (x_create_tip_frame): * xfns.c (x_create_tip_frame): Call set_window_buffer instead of Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog9
-rw-r--r--src/frame.c40
-rw-r--r--src/minibuf.c12
-rw-r--r--src/w32fns.c4
-rw-r--r--src/xfns.c4
5 files changed, 49 insertions, 20 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index b752db53eee..cf24ee95a05 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,12 @@
12012-08-14 Martin Rudalics <rudalics@gmx.at>
2
3 * frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
4 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
5 * minibuf.c (choose_minibuf_frame, read_minibuf):
6 * w32fns.c (x_create_tip_frame):
7 * xfns.c (x_create_tip_frame): Call set_window_buffer instead of
8 Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
9
12012-08-14 Paul Eggert <eggert@cs.ucla.edu> 102012-08-14 Paul Eggert <eggert@cs.ucla.edu>
2 11
3 * intervals.c (offset_intervals): Remove obsolete comment. 12 * intervals.c (offset_intervals): Remove obsolete comment.
diff --git a/src/frame.c b/src/frame.c
index b2990929058..ea682835a87 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -407,10 +407,12 @@ make_frame_without_minibuffer (register Lisp_Object mini_window, KBOARD *kb, Lis
407 /* Make the chosen minibuffer window display the proper minibuffer, 407 /* Make the chosen minibuffer window display the proper minibuffer,
408 unless it is already showing a minibuffer. */ 408 unless it is already showing a minibuffer. */
409 if (NILP (Fmemq (XWINDOW (mini_window)->buffer, Vminibuffer_list))) 409 if (NILP (Fmemq (XWINDOW (mini_window)->buffer, Vminibuffer_list)))
410 Fset_window_buffer (mini_window, 410 /* Use set_window_buffer instead of Fset_window_buffer (see
411 (NILP (Vminibuffer_list) 411 discussion of bug#11984, bug#12025, bug#12026). */
412 ? get_minibuffer (0) 412 set_window_buffer (mini_window,
413 : Fcar (Vminibuffer_list)), Qnil); 413 (NILP (Vminibuffer_list)
414 ? get_minibuffer (0)
415 : Fcar (Vminibuffer_list)), 0, 0);
414 return f; 416 return f;
415} 417}
416 418
@@ -445,10 +447,12 @@ make_minibuffer_frame (void)
445 447
446 /* Put the proper buffer in that window. */ 448 /* Put the proper buffer in that window. */
447 449
448 Fset_window_buffer (mini_window, 450 /* Use set_window_buffer instead of Fset_window_buffer (see
449 (NILP (Vminibuffer_list) 451 discussion of bug#11984, bug#12025, bug#12026). */
450 ? get_minibuffer (0) 452 set_window_buffer (mini_window,
451 : Fcar (Vminibuffer_list)), Qnil); 453 (NILP (Vminibuffer_list)
454 ? get_minibuffer (0)
455 : Fcar (Vminibuffer_list)), 0, 0);
452 return f; 456 return f;
453} 457}
454#endif /* HAVE_WINDOW_SYSTEM */ 458#endif /* HAVE_WINDOW_SYSTEM */
@@ -1240,8 +1244,10 @@ delete_frame (Lisp_Object frame, Lisp_Object force)
1240 /* Don't allow minibuf_window to remain on a deleted frame. */ 1244 /* Don't allow minibuf_window to remain on a deleted frame. */
1241 if (EQ (f->minibuffer_window, minibuf_window)) 1245 if (EQ (f->minibuffer_window, minibuf_window))
1242 { 1246 {
1243 Fset_window_buffer (sf->minibuffer_window, 1247 /* Use set_window_buffer instead of Fset_window_buffer (see
1244 XWINDOW (minibuf_window)->buffer, Qnil); 1248 discussion of bug#11984, bug#12025, bug#12026). */
1249 set_window_buffer (sf->minibuffer_window,
1250 XWINDOW (minibuf_window)->buffer, 0, 0);
1245 minibuf_window = sf->minibuffer_window; 1251 minibuf_window = sf->minibuffer_window;
1246 1252
1247 /* If the dying minibuffer window was selected, 1253 /* If the dying minibuffer window was selected,
@@ -1713,8 +1719,10 @@ displayed in the terminal. */)
1713 if (EQ (XFRAME (frame)->minibuffer_window, minibuf_window)) 1719 if (EQ (XFRAME (frame)->minibuffer_window, minibuf_window))
1714 { 1720 {
1715 struct frame *sf = XFRAME (selected_frame); 1721 struct frame *sf = XFRAME (selected_frame);
1716 Fset_window_buffer (sf->minibuffer_window, 1722 /* Use set_window_buffer instead of Fset_window_buffer (see
1717 XWINDOW (minibuf_window)->buffer, Qnil); 1723 discussion of bug#11984, bug#12025, bug#12026). */
1724 set_window_buffer (sf->minibuffer_window,
1725 XWINDOW (minibuf_window)->buffer, 0, 0);
1718 minibuf_window = sf->minibuffer_window; 1726 minibuf_window = sf->minibuffer_window;
1719 } 1727 }
1720 1728
@@ -1747,12 +1755,14 @@ If omitted, FRAME defaults to the currently selected frame. */)
1747 Fhandle_switch_frame (next_frame (frame, Qt)); 1755 Fhandle_switch_frame (next_frame (frame, Qt));
1748#endif 1756#endif
1749 1757
1750 /* Don't allow minibuf_window to remain on a deleted frame. */ 1758 /* Don't allow minibuf_window to remain on an iconified frame. */
1751 if (EQ (XFRAME (frame)->minibuffer_window, minibuf_window)) 1759 if (EQ (XFRAME (frame)->minibuffer_window, minibuf_window))
1752 { 1760 {
1753 struct frame *sf = XFRAME (selected_frame); 1761 struct frame *sf = XFRAME (selected_frame);
1754 Fset_window_buffer (sf->minibuffer_window, 1762 /* Use set_window_buffer instead of Fset_window_buffer (see
1755 XWINDOW (minibuf_window)->buffer, Qnil); 1763 discussion of bug#11984, bug#12025, bug#12026). */
1764 set_window_buffer (sf->minibuffer_window,
1765 XWINDOW (minibuf_window)->buffer, 0, 0);
1756 minibuf_window = sf->minibuffer_window; 1766 minibuf_window = sf->minibuffer_window;
1757 } 1767 }
1758 1768
diff --git a/src/minibuf.c b/src/minibuf.c
index 3a384bf57bb..59da974df00 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -117,7 +117,9 @@ choose_minibuf_frame (void)
117 init_window_once. That window doesn't have a buffer. */ 117 init_window_once. That window doesn't have a buffer. */
118 buffer = XWINDOW (minibuf_window)->buffer; 118 buffer = XWINDOW (minibuf_window)->buffer;
119 if (BUFFERP (buffer)) 119 if (BUFFERP (buffer))
120 Fset_window_buffer (sf->minibuffer_window, buffer, Qnil); 120 /* Use set_window_buffer instead of Fset_window_buffer (see
121 discussion of bug#11984, bug#12025, bug#12026). */
122 set_window_buffer (sf->minibuffer_window, buffer, 0, 0);
121 minibuf_window = sf->minibuffer_window; 123 minibuf_window = sf->minibuffer_window;
122 } 124 }
123 125
@@ -617,11 +619,15 @@ read_minibuf (Lisp_Object map, Lisp_Object initial, Lisp_Object prompt,
617 619
618 if (! NILP (mini_window) && ! EQ (mini_window, minibuf_window) 620 if (! NILP (mini_window) && ! EQ (mini_window, minibuf_window)
619 && !NILP (Fwindow_minibuffer_p (mini_window))) 621 && !NILP (Fwindow_minibuffer_p (mini_window)))
620 Fset_window_buffer (mini_window, empty_minibuf, Qnil); 622 /* Use set_window_buffer instead of Fset_window_buffer (see
623 discussion of bug#11984, bug#12025, bug#12026). */
624 set_window_buffer (mini_window, empty_minibuf, 0, 0);
621 } 625 }
622 626
623 /* Display this minibuffer in the proper window. */ 627 /* Display this minibuffer in the proper window. */
624 Fset_window_buffer (minibuf_window, Fcurrent_buffer (), Qnil); 628 /* Use set_window_buffer instead of Fset_window_buffer (see
629 discussion of bug#11984, bug#12025, bug#12026). */
630 set_window_buffer (minibuf_window, Fcurrent_buffer (), 0, 0);
625 Fselect_window (minibuf_window, Qnil); 631 Fselect_window (minibuf_window, Qnil);
626 XWINDOW (minibuf_window)->hscroll = 0; 632 XWINDOW (minibuf_window)->hscroll = 0;
627 633
diff --git a/src/w32fns.c b/src/w32fns.c
index d1dba0c0bb8..7779f032104 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -5237,7 +5237,9 @@ x_create_tip_frame (struct w32_display_info *dpyinfo,
5237 XSETFRAME (frame, f); 5237 XSETFRAME (frame, f);
5238 5238
5239 buffer = Fget_buffer_create (build_string (" *tip*")); 5239 buffer = Fget_buffer_create (build_string (" *tip*"));
5240 Fset_window_buffer (FRAME_ROOT_WINDOW (f), buffer, Qnil); 5240 /* Use set_window_buffer instead of Fset_window_buffer (see
5241 discussion of bug#11984, bug#12025, bug#12026). */
5242 set_window_buffer (FRAME_ROOT_WINDOW (f), buffer, 0, 0);
5241 old_buffer = current_buffer; 5243 old_buffer = current_buffer;
5242 set_buffer_internal_1 (XBUFFER (buffer)); 5244 set_buffer_internal_1 (XBUFFER (buffer));
5243 BSET (current_buffer, truncate_lines, Qnil); 5245 BSET (current_buffer, truncate_lines, Qnil);
diff --git a/src/xfns.c b/src/xfns.c
index bbc9f375340..3242af937c9 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -4591,7 +4591,9 @@ x_create_tip_frame (struct x_display_info *dpyinfo,
4591 XSETFRAME (frame, f); 4591 XSETFRAME (frame, f);
4592 4592
4593 buffer = Fget_buffer_create (build_string (" *tip*")); 4593 buffer = Fget_buffer_create (build_string (" *tip*"));
4594 Fset_window_buffer (FRAME_ROOT_WINDOW (f), buffer, Qnil); 4594 /* Use set_window_buffer instead of Fset_window_buffer (see
4595 discussion of bug#11984, bug#12025, bug#12026). */
4596 set_window_buffer (FRAME_ROOT_WINDOW (f), buffer, 0, 0);
4595 old_buffer = current_buffer; 4597 old_buffer = current_buffer;
4596 set_buffer_internal_1 (XBUFFER (buffer)); 4598 set_buffer_internal_1 (XBUFFER (buffer));
4597 BSET (current_buffer, truncate_lines, Qnil); 4599 BSET (current_buffer, truncate_lines, Qnil);