changeset 94566:c31e26fe0b1f

* progmodes/compile.el (compilation-start): Move setting of compilation-directory after (funcall mode) as that resets local variables, this fixes recompile in grep buffers. * grep.el (grep-mode-map): Bind "g" to recompile (like in dired &c).
author Sam Steingold <sds@gnu.org>
date Fri, 02 May 2008 18:37:07 +0000
parents fe81b2cb42e0
children ee6746b372f3
files lisp/ChangeLog lisp/progmodes/compile.el lisp/progmodes/grep.el
diffstat 3 files changed, 16 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri May 02 18:32:18 2008 +0000
+++ b/lisp/ChangeLog	Fri May 02 18:37:07 2008 +0000
@@ -1,3 +1,10 @@
+2008-05-02  Sam Steingold  <sds@gnu.org>
+
+	* progmodes/compile.el (compilation-start): Move setting of
+	compilation-directory after (funcall mode) as that resets local
+	variables, this fixes recompile in grep buffers.
+	* grep.el (grep-mode-map): Bind "g" to recompile (like in dired &c).
+
 2008-05-02  Eric S. Raymond  <esr@snark.thyrsus.com>
 
 	* vc-arch.el, vc-bzr.el, vc-cvs.el, vc-git.el, vc-hg.el,
--- a/lisp/progmodes/compile.el	Fri May 02 18:32:18 2008 +0000
+++ b/lisp/progmodes/compile.el	Fri May 02 18:37:07 2008 +0000
@@ -1159,10 +1159,6 @@
       (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)
@@ -1182,6 +1178,11 @@
 	  (setq buffer-read-only nil)
 	  (with-no-warnings (comint-mode))
 	  (compilation-shell-minor-mode))
+        ;; 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 ...;".
+        ;; NB: must be fone after (funcall mode) as that resets local variables
+        (set (make-local-variable 'compilation-directory) thisdir)
 	(if highlight-regexp
 	    (set (make-local-variable 'compilation-highlight-regexp)
 		 highlight-regexp))
--- a/lisp/progmodes/grep.el	Fri May 02 18:32:18 2008 +0000
+++ b/lisp/progmodes/grep.el	Fri May 02 18:37:07 2008 +0000
@@ -187,6 +187,7 @@
     (define-key map "\r" 'compile-goto-error)  ;; ?
     (define-key map "n" 'next-error-no-select)
     (define-key map "p" 'previous-error-no-select)
+    (define-key map "g" 'recompile) ; revert
     (define-key map "{" 'compilation-previous-file)
     (define-key map "}" 'compilation-next-file)
     (define-key map "\t" 'compilation-next-error)
@@ -230,7 +231,7 @@
   (if (display-graphic-p)
       (let ((map (butlast (copy-keymap tool-bar-map)))
 	    (help (last tool-bar-map))) ;; Keep Help last in tool bar
-	(tool-bar-local-item 
+	(tool-bar-local-item
 	 "left-arrow" 'previous-error-no-select 'previous-error-no-select map
 	 :rtl "right-arrow"
 	 :help "Goto previous match")
@@ -238,12 +239,12 @@
 	 "right-arrow" 'next-error-no-select 'next-error-no-select map
 	 :rtl "left-arrow"
 	 :help "Goto next match")
-	(tool-bar-local-item 
+	(tool-bar-local-item
 	 "cancel" 'kill-compilation 'kill-compilation map
 	 :enable '(let ((buffer (compilation-find-buffer)))
 		    (get-buffer-process buffer))
 	 :help "Stop grep")
-	(tool-bar-local-item 
+	(tool-bar-local-item
 	 "refresh" 'recompile 'recompile map
 	 :help "Restart grep")
 	(append map help))))