# HG changeset patch # User Sam Steingold # Date 1209753427 0 # Node ID c31e26fe0b1f4513129c09dbfba28a406d84edce # Parent fe81b2cb42e03b9d787931e822d728b516e1fa5e * 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). diff -r fe81b2cb42e0 -r c31e26fe0b1f lisp/ChangeLog --- 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 + + * 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 * vc-arch.el, vc-bzr.el, vc-cvs.el, vc-git.el, vc-hg.el, diff -r fe81b2cb42e0 -r c31e26fe0b1f lisp/progmodes/compile.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)) diff -r fe81b2cb42e0 -r c31e26fe0b1f lisp/progmodes/grep.el --- 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))))