]> git.eshelyaron.com Git - emacs.git/commitdiff
(compilation-read-command): Extracted from compile.
authorSam Steingold <sds@gnu.org>
Thu, 4 Dec 2008 23:04:39 +0000 (23:04 +0000)
committerSam Steingold <sds@gnu.org>
Thu, 4 Dec 2008 23:04:39 +0000 (23:04 +0000)
(compile): Use it.
(recompile): Accept an optional argument to enable editing the command line.

lisp/ChangeLog
lisp/progmodes/compile.el

index 53a9806f6132500519e06448616e3dcae65d9fe8..32393579676d0f0e588d28dfd78914e36c49bf68 100644 (file)
@@ -1,3 +1,11 @@
+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.
index 9133f6e02314091f58a04556054af371ff482250..0f9800acc0622e23642f8e9edef6b7629e179b06 100644 (file)
@@ -1019,6 +1019,12 @@ FMTS is a list of format specs for transforming the file name.
 
      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)
@@ -1052,10 +1058,7 @@ to a function that generates a unique name."
    (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))
@@ -1065,13 +1068,17 @@ to a function that generates a unique name."
   (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))))))