+2008-12-04 Sam Steingold <sds@gnu.org>
+
+ * progmodes/compile.el (compilation-read-command): Extracted from
+ compile.
+ (compile): Use it.
+ (recompile): Accept an optional argument to enable editing the
+ command line.
+
2008-12-04 Michael Albinus <michael.albinus@gmx.de>
* net/tramp.el (top): Write a message, when loading Tramp.
compilation-mode-font-lock-keywords)))
+(defun compilation-read-command (command)
+ (read-shell-command "Compile command: " command
+ (if (equal (car compile-history) command)
+ '(compile-history . 1)
+ 'compile-history)))
+
\f
;;;###autoload
(defun compile (command &optional comint)
(list
(let ((command (eval compile-command)))
(if (or compilation-read-command current-prefix-arg)
- (read-shell-command "Compile command: " command
- (if (equal (car compile-history) command)
- '(compile-history . 1)
- 'compile-history))
+ (compilation-read-command command)
command))
(consp current-prefix-arg)))
(unless (equal command (eval compile-command))
(compilation-start command comint))
;; run compile with the default command line
-(defun recompile ()
+(defun recompile (&optional edit-command)
"Re-compile the program including the current buffer.
If this is run in a Compilation mode buffer, re-use the arguments from the
-original use. Otherwise, recompile using `compile-command'."
- (interactive)
+original use. Otherwise, recompile using `compile-command'.
+If the optional argument `edit-command' is non-nil, the command can be edited."
+ (interactive "P")
(save-some-buffers (not compilation-ask-about-save) nil)
(let ((default-directory (or compilation-directory default-directory)))
+ (when edit-command
+ (setcar compilation-arguments
+ (compilation-read-command (car compilation-arguments))))
(apply 'compilation-start (or compilation-arguments
`(,(eval compile-command))))))