From 9f4b608417309d0480fe17f679d1173cbc534b6f Mon Sep 17 00:00:00 2001 From: Markus Rost Date: Tue, 24 Sep 2002 18:40:59 +0000 Subject: [PATCH] (edit-and-eval-command): Protect command-history. (repeat-complex-command): Protect command-history. --- lisp/ChangeLog | 5 +++++ lisp/simple.el | 36 ++++++++++++++++++++---------------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2a18f67df08..b1f58215d58 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2002-09-24 Markus Rost + + * simple.el (edit-and-eval-command): Protect command-history. + (repeat-complex-command): Protect command-history. + 2002-09-24 Juanma Barranquero * replace.el (occur-find-match): New function. diff --git a/lisp/simple.el b/lisp/simple.el index d94d497180d..ecf0e95a620 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -650,14 +650,16 @@ the echo area." "Prompting with PROMPT, let user edit COMMAND and eval result. COMMAND is a Lisp expression. Let user edit that expression in the minibuffer, then read and evaluate the result." - (let ((command (read-from-minibuffer prompt - (prin1-to-string command) - read-expression-map t - '(command-history . 1)))) - ;; If command was added to command-history as a string, - ;; get rid of that. We want only evaluable expressions there. - (if (stringp (car command-history)) - (setq command-history (cdr command-history))) + (let ((command + (unwind-protect + (read-from-minibuffer prompt + (prin1-to-string command) + read-expression-map t + '(command-history . 1)) + ;; If command was added to command-history as a string, + ;; get rid of that. We want only evaluable expressions there. + (if (stringp (car command-history)) + (setq command-history (cdr command-history)))))) ;; If command to be redone does not match front of history, ;; add it to the history. @@ -683,14 +685,16 @@ to get different commands to edit and resubmit." (let ((print-level nil) (minibuffer-history-position arg) (minibuffer-history-sexp-flag (1+ (minibuffer-depth)))) - (read-from-minibuffer - "Redo: " (prin1-to-string elt) read-expression-map t - (cons 'command-history arg)))) - - ;; If command was added to command-history as a string, - ;; get rid of that. We want only evaluable expressions there. - (if (stringp (car command-history)) - (setq command-history (cdr command-history))) + (unwind-protect + (read-from-minibuffer + "Redo: " (prin1-to-string elt) read-expression-map t + (cons 'command-history arg)) + + ;; If command was added to command-history as a + ;; string, get rid of that. We want only + ;; evaluable expressions there. + (if (stringp (car command-history)) + (setq command-history (cdr command-history)))))) ;; If command to be redone does not match front of history, ;; add it to the history. -- 2.11.4.GIT