diff lisp/progmodes/compile.el @ 56877:e2576d47dd53

(compilation-buffer-name): Compare major mode with second element of compilation-arguments instead of third to reflect latest changes in compilation-arguments structure. (recompile): Use global variable `compilation-directory' to get recent compilation directory only when `recompile' is invoked NOT in the compilation buffer. Otherwise, use `default-directory' of the compilation buffer.
author Juri Linkov <juri@jurta.org>
date Thu, 02 Sep 2004 09:45:31 +0000
parents c77183f170cf
children 6bb35c70240a
line wrap: on
line diff
--- a/lisp/progmodes/compile.el	Thu Sep 02 09:43:38 2004 +0000
+++ b/lisp/progmodes/compile.el	Thu Sep 02 09:45:31 2004 +0000
@@ -458,9 +458,9 @@
   :version "21.4")
 
 (defface compilation-info-face
-  '((((class color) (min-colors 16) (background light)) 
+  '((((class color) (min-colors 16) (background light))
      (:foreground "Green3" :weight bold))
-    (((class color) (min-colors 16) (background dark)) 
+    (((class color) (min-colors 16) (background dark))
      (:foreground "Green" :weight bold))
     (((class color)) (:foreground "green" :weight bold))
     (t (:weight bold)))
@@ -789,7 +789,10 @@
 original use.  Otherwise, recompile using `compile-command'."
   (interactive)
   (save-some-buffers (not compilation-ask-about-save) nil)
-  (let ((default-directory (or compilation-directory default-directory)))
+  (let ((default-directory
+          (or (and (not (eq major-mode (nth 1 compilation-arguments)))
+                   compilation-directory)
+              default-directory)))
     (apply 'compilation-start (or compilation-arguments
 				  `(,(eval compile-command))))))
 
@@ -816,8 +819,7 @@
 	 (funcall name-function mode-name))
 	(compilation-buffer-name-function
 	 (funcall compilation-buffer-name-function mode-name))
-	((and (eq major-mode 'compilation-mode)
-	      (equal mode-name (nth 2 compilation-arguments)))
+	((eq major-mode (nth 1 compilation-arguments))
 	 (buffer-name))
 	(t
 	 (concat "*" (downcase mode-name) "*"))))
@@ -1522,7 +1524,7 @@
 
 (defun compilation-goto-locus (msg mk end-mk)
   "Jump to an error corresponding to MSG at MK.
-All arguments are markers.  If END-MK is non nil, mark is set there."
+All arguments are markers.  If END-MK is non-nil, mark is set there."
   (if (eq (window-buffer (selected-window))
 	  (marker-buffer msg))
       ;; If the compilation buffer window is selected,