diff options
| author | Martin Rudalics | 2012-08-14 10:44:24 +0200 |
|---|---|---|
| committer | Martin Rudalics | 2012-08-14 10:44:24 +0200 |
| commit | 08908acaa6d4e2679cf2fc32c91c17906a4de639 (patch) | |
| tree | b2958f917124c082f606daf1b62bc4748550f60b /src | |
| parent | e5b19827faaff8168889c9cf3c8f746fd67e6991 (diff) | |
| download | emacs-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/ChangeLog | 9 | ||||
| -rw-r--r-- | src/frame.c | 40 | ||||
| -rw-r--r-- | src/minibuf.c | 12 | ||||
| -rw-r--r-- | src/w32fns.c | 4 | ||||
| -rw-r--r-- | src/xfns.c | 4 |
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 @@ | |||
| 1 | 2012-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 | |||
| 1 | 2012-08-14 Paul Eggert <eggert@cs.ucla.edu> | 10 | 2012-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); |