From 2e66013dcf1e139436cc806725e0b04945be55a9 Mon Sep 17 00:00:00 2001 From: Federico Tedin Date: Wed, 29 Jan 2020 22:24:40 +0100 Subject: [PATCH] Ensure minibuffer input is added to history in read_minibuf * src/minibuf.c (read_minibuf): Parse input string after saving the string to the history list instead of before, in case parsing signals an error or is interrupted by C-g. (Bug#39291) --- src/minibuf.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/minibuf.c b/src/minibuf.c index c5f61456900..b837cc53eb9 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -696,10 +696,6 @@ read_minibuf (Lisp_Object map, Lisp_Object initial, Lisp_Object prompt, else histstring = 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. */ unbind_to (count, Qnil); @@ -710,6 +706,10 @@ read_minibuf (Lisp_Object map, Lisp_Object initial, Lisp_Object prompt, if (! (NILP (Vhistory_add_new_input) || NILP (histstring))) call2 (intern ("add-to-history"), histvar, histstring); + /* If Lisp form desired instead of string, parse it. */ + if (expflag) + val = string_to_object (val, defalt); + return val; } -- 2.39.2