* progmodes/compile.el (compilation-start): Move setting of
authorSam Steingold <sds@gnu.org>
Fri, 2 May 2008 18:37:07 +0000 (18:37 +0000)
committerSam Steingold <sds@gnu.org>
Fri, 2 May 2008 18:37:07 +0000 (18:37 +0000)
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).

lisp/ChangeLog
lisp/progmodes/compile.el
lisp/progmodes/grep.el

index 4e15809..9d1def1 100644 (file)
@@ -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,
index 89e9ded..10ac627 100644 (file)
@@ -1159,10 +1159,6 @@ Returns the compilation buffer created."
       (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 @@ Returns the compilation buffer created."
          (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))
index 5d56e3a..55d77f0 100644 (file)
@@ -187,6 +187,7 @@ See `compilation-error-screen-columns'"
     (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 @@ See `compilation-error-screen-columns'"
   (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 @@ See `compilation-error-screen-columns'"
         "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))))