From: Glenn Morris Date: Fri, 9 May 2014 06:42:39 +0000 (-0700) Subject: * compile.el (recompile): Handle C-u M-x recompile from non-compilation buffer X-Git-Tag: emacs-24.3.91~18 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=bb1f4b8f9a0539e57f5fb31c8168950c92aa4492;p=emacs.git * compile.el (recompile): Handle C-u M-x recompile from non-compilation buffer Fixes: debbugs:17444 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8f3a245e2ad..c1b13e7cebb 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2014-05-09 Glenn Morris + + * progmodes/compile.el (recompile): + Handle C-u M-x recompile from a non-compilation buffer. (Bug#17444) + 2014-05-08 Juri Linkov * dired.el (dired-check-switches, dired-switches-recursive-p): diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index f6a94e8bf8c..30f30dfe83f 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -1430,7 +1430,7 @@ If optional second arg COMINT is t the buffer will be in Comint mode with `compilation-shell-minor-mode'. Interactively, prompts for the command if the variable -`compilation-read-command' is non-nil; otherwise uses`compile-command'. +`compilation-read-command' is non-nil; otherwise uses `compile-command'. With prefix arg, always prompts. Additionally, with universal prefix arg, compilation buffer will be in comint mode, i.e. interactive. @@ -1469,12 +1469,13 @@ If the optional argument `edit-command' is non-nil, the command can be edited." (interactive "P") (save-some-buffers (not compilation-ask-about-save) compilation-save-buffers-predicate) - (let ((default-directory (or compilation-directory default-directory))) + (let ((default-directory (or compilation-directory default-directory)) + (command (eval compile-command))) (when edit-command - (setcar compilation-arguments - (compilation-read-command (car compilation-arguments)))) - (apply 'compilation-start (or compilation-arguments - `(,(eval compile-command)))))) + (setq command (compilation-read-command (or (car compilation-arguments) + command))) + (if compilation-arguments (setcar compilation-arguments command))) + (apply 'compilation-start (or compilation-arguments (list command))))) (defcustom compilation-scroll-output nil "Non-nil to scroll the *compilation* buffer window as output appears.