Mercurial > emacs
changeset 81999:c0fc8e3cb6b4
(compilation-start): Remember the original directory in a buffer-local
compilation-directory.
(compile): Set the global value of compilation-directory.
(recompile): Use compilation-directory even if run from the compilation buffer.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Fri, 20 Jul 2007 18:54:57 +0000 |
parents | 52950d8efd2b |
children | 066eaef90bfb |
files | lisp/ChangeLog lisp/progmodes/compile.el |
diffstat | 2 files changed, 13 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Fri Jul 20 17:32:04 2007 +0000 +++ b/lisp/ChangeLog Fri Jul 20 18:54:57 2007 +0000 @@ -1,3 +1,10 @@ +2007-07-20 Stefan Monnier <monnier@iro.umontreal.ca> + + * progmodes/compile.el (compilation-start): Remember the original + directory in a buffer-local compilation-directory. + (compile): Set the global value of compilation-directory. + (recompile): Use compilation-directory even in the compilation buffer. + 2007-07-20 Dan Nicolaescu <dann@ics.uci.edu> * vc-hg.el (vc-hg-diff): Use vc-hg-command.
--- a/lisp/progmodes/compile.el Fri Jul 20 17:32:04 2007 +0000 +++ b/lisp/progmodes/compile.el Fri Jul 20 18:54:57 2007 +0000 @@ -934,7 +934,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) + (setq-default compilation-directory default-directory) (compilation-start command comint)) ;; run compile with the default command line @@ -944,10 +944,7 @@ original use. Otherwise, recompile using `compile-command'." (interactive) (save-some-buffers (not compilation-ask-about-save) nil) - (let ((default-directory - (or (and (not (eq major-mode (nth 1 compilation-arguments))) - compilation-directory) - default-directory))) + (let ((default-directory (or compilation-directory default-directory))) (apply 'compilation-start (or compilation-arguments `(,(eval compile-command)))))) @@ -1042,6 +1039,10 @@ (buffer-disable-undo (current-buffer)) ;; first transfer directory from where M-x compile was called (setq default-directory thisdir) + ;; Remember the original dir, so we can use it when we recompile. + ;; default-directory' can't be used reliably for that because it may be + ;; affected by the special handling of "cd ...;". + (set (make-local-variable 'compilation-directory) thisdir) ;; Make compilation buffer read-only. The filter can still write it. ;; Clear out the compilation buffer. (let ((inhibit-read-only t)