From: Richard M. Stallman Date: Thu, 23 Feb 1995 05:02:54 +0000 (+0000) Subject: (shell-command-on-region): When computing interactive args, X-Git-Tag: emacs-19.34~5053 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=cae49185e5fe9f630b36582f3dabe309141fcdb3;p=emacs.git (shell-command-on-region): When computing interactive args, read the minibuffer arg first, then get the region bounds. --- 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.