From 5f3ca1ba63892e9c3e95f591a8d551ec80d6782a Mon Sep 17 00:00:00 2001 From: Sam Steingold Date: Fri, 2 May 2008 18:37:07 +0000 Subject: [PATCH] * 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). --- lisp/ChangeLog | 7 +++++++ lisp/progmodes/compile.el | 9 +++++---- lisp/progmodes/grep.el | 7 ++++--- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4e158093b2d..9d1def1ec9f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -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 --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 89e9dedb69d..10ac627ed91 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -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)) diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el index 5d56e3ab5a0..55d77f04d95 100644 --- a/lisp/progmodes/grep.el +++ b/lisp/progmodes/grep.el @@ -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)))) -- 2.39.5