From cae49185e5fe9f630b36582f3dabe309141fcdb3 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Thu, 23 Feb 1995 05:02:54 +0000 Subject: [PATCH] (shell-command-on-region): When computing interactive args, read the minibuffer arg first, then get the region bounds. --- lisp/simple.el | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lisp/simple.el b/lisp/simple.el index fff374342cb..194c9740cac 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -795,11 +795,17 @@ If OUTPUT-BUFFER is a buffer or buffer name, put the output there. If OUTPUT-BUFFER is not a buffer and not nil, insert output in the current buffer. In either case, the output is inserted after point (leaving mark after it)." - (interactive (list (region-beginning) (region-end) - (read-from-minibuffer "Shell command on region: " - nil nil nil 'shell-command-history) - current-prefix-arg - (prefix-numeric-value current-prefix-arg))) + (interactive (let ((string + ;; Do this before calling region-beginning + ;; and region-end, in case subprocess output + ;; relocates them while we are in the minibuffer. + (read-from-minibuffer "Shell command on region: " + nil nil nil + 'shell-command-history))) + (list (region-beginning) (region-end) + string + current-prefix-arg + (prefix-numeric-value current-prefix-arg)))) (if (and output-buffer (not (or (bufferp output-buffer) (stringp output-buffer)))) ;; Replace specified region with output from command. -- 2.11.4.GIT