summaryrefslogtreecommitdiff
path: root/src/minibuf.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1995-07-21 07:50:50 +0000
committerRichard M. Stallman <rms@gnu.org>1995-07-21 07:50:50 +0000
commit031504c4e5c3e5755b7af7424c67a412e8ed2ce6 (patch)
treebee3cadd92fced7aef433a95ce92ffd1cf0127c5 /src/minibuf.c
parent1a713f8f0b088af4144129c443b0a66b7536030a (diff)
downloademacs-031504c4e5c3e5755b7af7424c67a412e8ed2ce6.tar.gz
(read_minibuf): Call choose_minibuffer_frame.
First save the previous minibuf_window. (read_minibuf_unwind): Restore old minibuf_window.
Diffstat (limited to 'src/minibuf.c')
-rw-r--r--src/minibuf.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/minibuf.c b/src/minibuf.c
index 91e622a617c..afd27c76a35 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -148,26 +148,28 @@ read_minibuf (map, initial, prompt, backup_n, expflag, histvar, histpos)
if (!enable_recursive_minibuffers
&& minibuf_level > 0
&& (EQ (selected_window, minibuf_window)))
-#if 0
- || selected_frame != XFRAME (WINDOW_FRAME (XWINDOW (minibuf_window)))
-#endif
error ("Command attempted to use minibuffer while in minibuffer");
/* Could we simply bind these variables instead? */
minibuf_save_list
+ = Fcons (Voverriding_local_map,
+ Fcons (minibuf_window, minibuf_save_list));
+ minibuf_save_list
= Fcons (minibuf_prompt,
Fcons (make_number (minibuf_prompt_width),
Fcons (Vhelp_form,
Fcons (Vcurrent_prefix_arg,
Fcons (Vminibuffer_history_position,
Fcons (Vminibuffer_history_variable,
- Fcons (Voverriding_local_map,
- minibuf_save_list)))))));
+ minibuf_save_list))))));
+
minibuf_prompt_width = 0; /* xdisp.c puts in the right value. */
minibuf_prompt = Fcopy_sequence (prompt);
Vminibuffer_history_position = histpos;
Vminibuffer_history_variable = histvar;
+ choose_minibuf_frame ();
+
record_unwind_protect (Fset_window_configuration,
Fcurrent_window_configuration (Qnil));
@@ -407,6 +409,8 @@ read_minibuf_unwind (data)
minibuf_save_list = Fcdr (minibuf_save_list);
Voverriding_local_map = Fcar (minibuf_save_list);
minibuf_save_list = Fcdr (minibuf_save_list);
+ minibuf_window = Fcar (minibuf_save_list);
+ minibuf_save_list = Fcdr (minibuf_save_list);
}