diff options
author | Richard M. Stallman <rms@gnu.org> | 1995-07-21 07:50:50 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1995-07-21 07:50:50 +0000 |
commit | 031504c4e5c3e5755b7af7424c67a412e8ed2ce6 (patch) | |
tree | bee3cadd92fced7aef433a95ce92ffd1cf0127c5 /src/minibuf.c | |
parent | 1a713f8f0b088af4144129c443b0a66b7536030a (diff) | |
download | emacs-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.c | 14 |
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); } |