changeset 53978:227623e374e8

(compilation-directory): New defvar. (compile): Save current directory in compilation-directory. (recompile): Bind default-directory to compilation-directory if that is non-nil.
author Eli Zaretskii <eliz@is.elta.co.il>
date Mon, 16 Feb 2004 12:50:24 +0000
parents 980fc678e13c
children c75b456db0b9
files lisp/progmodes/compile.el
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/compile.el	Mon Feb 16 12:37:21 2004 +0000
+++ b/lisp/progmodes/compile.el	Mon Feb 16 12:50:24 2004 +0000
@@ -386,6 +386,9 @@
 try; %s in the string is replaced by the text matching the FILE-IDX'th
 subexpression.")
 
+(defvar compilation-directory nil
+  "Directory to restore to when doing `recompile'.")
+
 (defvar compilation-enter-directory-regexp-alist
   '(
     ;; Matches lines printed by the `-w' option of GNU Make.
@@ -578,6 +581,7 @@
   (unless (equal command (eval compile-command))
     (setq compile-command command))
   (save-some-buffers (not compilation-ask-about-save) nil)
+  (setq compilation-directory default-directory)
   (compile-internal command "No more errors"))
 
 ;; run compile with the default command line
@@ -587,8 +591,10 @@
 original use.  Otherwise, it recompiles using `compile-command'."
   (interactive)
   (save-some-buffers (not compilation-ask-about-save) nil)
-  (apply 'compile-internal (or compilation-arguments
-			      `(,(eval compile-command) "No more errors"))))
+  (let ((default-directory (or compilation-directory default-directory)))
+    (apply 'compile-internal (or compilation-arguments
+				 `(,(eval compile-command)
+				   "No more errors")))))
 
 (defcustom compilation-scroll-output nil
   "*Non-nil to scroll the *compilation* buffer window as output appears.