diff options
author | Federico Tedin <federicotedin@gmail.com> | 2019-12-06 01:23:25 +0100 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2019-12-10 11:12:23 -0500 |
commit | 9042ece787cf93665776ffb69893fcb1357aacbe (patch) | |
tree | 9abe945ddc4f510c56fd392231c21fb88f04a381 | |
parent | 0f9c016a52a396cce9e0f1cc2ee35b0524d917ef (diff) | |
download | emacs-9042ece787cf93665776ffb69893fcb1357aacbe.tar.gz |
Simplify call to add-to-history in read_minibuf
* src/minibuf.c (read_minibuf): Avoid restoring the previous buffer,
as this is already done at the end of the function; call
`add-to-history' after that point.
-rw-r--r-- | src/minibuf.c | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/src/minibuf.c b/src/minibuf.c index bdae01dbc58..f8790f55070 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -353,7 +353,7 @@ read_minibuf (Lisp_Object map, Lisp_Object initial, Lisp_Object prompt, Lisp_Object histvar, Lisp_Object histpos, Lisp_Object defalt, bool allow_props, bool inherit_input_method) { - Lisp_Object val, previous_buffer = Fcurrent_buffer (); + Lisp_Object val; ptrdiff_t count = SPECPDL_INDEX (); Lisp_Object mini_frame, ambient_dir, minibuffer, input_method; Lisp_Object enable_multibyte; @@ -696,30 +696,21 @@ read_minibuf (Lisp_Object map, Lisp_Object initial, Lisp_Object prompt, else histstring = Qnil; - /* Add the value to the appropriate history list, if any. */ - if (! (NILP (Vhistory_add_new_input) || NILP (histstring))) - { - ptrdiff_t count2 = SPECPDL_INDEX (); - - /* If possible, switch back to the previous buffer first, in - case the history variable is buffer-local. */ - if (BUFFER_LIVE_P (XBUFFER (previous_buffer))) - { - record_unwind_current_buffer (); - Fset_buffer (previous_buffer); - } - - call2 (intern ("add-to-history"), Vminibuffer_history_variable, histstring); - unbind_to (count2, Qnil); - } - /* If Lisp form desired instead of string, parse it. */ if (expflag) val = string_to_object (val, defalt); /* The appropriate frame will get selected in set-window-configuration. */ - return unbind_to (count, val); + unbind_to (count, Qnil); + + /* Add the value to the appropriate history list, if any. This is + done after the previous buffer has been made current again, in + case the history variable is buffer-local. */ + if (! (NILP (Vhistory_add_new_input) || NILP (histstring))) + call2 (intern ("add-to-history"), histvar, histstring); + + return val; } /* Return a buffer to be used as the minibuffer at depth `depth'. |