From: Federico Tedin Date: Fri, 6 Dec 2019 00:23:25 +0000 (+0100) Subject: Simplify call to add-to-history in read_minibuf X-Git-Tag: emacs-27.0.90~389 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9042ece787cf93665776ffb69893fcb1357aacbe;p=emacs.git 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. --- 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'.