From: Richard M. Stallman Date: Fri, 19 Nov 1993 17:44:23 +0000 (+0000) Subject: (read_minibuf): History list always gets strings, X-Git-Tag: emacs-19.34~10782 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=60b73b25853a0ca42d7838f9efcb8b9e33cb63ad;p=emacs.git (read_minibuf): History list always gets strings, not Lisp objects made by read. --- diff --git a/src/minibuf.c b/src/minibuf.c index e951f0bf66b..dc13d641a57 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -259,25 +259,28 @@ read_minibuf (map, initial, prompt, backup_n, expflag, histvar, histpos) /* VAL is the string of minibuffer text. */ last_minibuf_string = val; - /* If Lisp form desired instead of string, parse it. */ - if (expflag) - val = Fread (val); - /* Add the value to the appropriate history list. */ if (XTYPE (Vminibuffer_history_variable) == Lisp_Symbol && ! EQ (XSYMBOL (Vminibuffer_history_variable)->value, Qunbound)) { /* If the caller wanted to save the value read on a history list, - then do so if the value is not already the front of the list. */ - Lisp_Object histval = Fsymbol_value (Vminibuffer_history_variable); + then do so if the value is not already the front of the list. */ + Lisp_Object histval; + histval = Fsymbol_value (Vminibuffer_history_variable); /* The value of the history variable must be a cons or nil. Other - values are unacceptable. We silenty ignore these values. */ + values are unacceptable. We silently ignore these values. */ if (NILP (histval) - || (CONSP (histval) && NILP (Fequal (val, Fcar (histval))))) - Fset (Vminibuffer_history_variable, Fcons (val, histval)); + || (CONSP (histval) + && NILP (Fequal (last_minibuf_string, Fcar (histval))))) + Fset (Vminibuffer_history_variable, + Fcons (last_minibuf_string, histval)); } + /* If Lisp form desired instead of string, parse it. */ + if (expflag) + val = Fread (val); + unbind_to (count, Qnil); /* The appropriate frame will get selected in set-window-configuration. */