GNU bug report logs - #8340
23.2; recompile does not retain compilation-environment needed by vc-git-grep

Previous Next

Package: emacs;

Reported by: Trevor Spiteri <tspiteri <at> ieee.org>

Date: Thu, 24 Mar 2011 19:11:02 UTC

Severity: normal

Found in version 23.2

Done: Juri Linkov <juri <at> jurta.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
To: Juri Linkov <juri <at> jurta.org>
Cc: 8340 <at> debbugs.gnu.org, Trevor Spiteri <tspiteri <at> ieee.org>
Subject: bug#8340: 23.2; recompile does not retain compilation-environment needed by vc-git-grep
Date: Tue, 06 Sep 2011 14:39:58 -0400
> -(defvar compilation-environment nil
> -  "*List of environment variables for compilation to inherit.
> +(defcustom compilation-environment nil
> +  "List of environment variables for compilation to inherit.
>  Each element should be a string of the form ENVVARNAME=VALUE.
>  This list is temporarily prepended to `process-environment' prior to
> -starting the compilation process.")
> +starting the compilation process."
> +  :type '(repeat (string :tag "ENVVARNAME=VALUE"))
> +  :options '(("LANG=C"))
> +  :group 'compilation
> +  :version "24.1")

What is this supposed to fix?

>  ;; History of compile commands.
>  (defvar compile-history nil)
> @@ -1482,6 +1491,7 @@ (defun compilation-start (command &optio
>  	      "compilation"
>  	    (replace-regexp-in-string "-mode\\'" "" (symbol-name mode))))
>  	 (thisdir default-directory)
> +	 (thisenv compilation-environment)
>  	 outwin outbuf)
>      (with-current-buffer
>  	(setq outbuf
> @@ -1530,6 +1541,7 @@ (defun compilation-start (command &optio
>          ;; 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)
> +	(set (make-local-variable 'compilation-environment) thisenv)
>  	(if highlight-regexp
>  	    (set (make-local-variable 'compilation-highlight-regexp)
>  		 highlight-regexp))

> === modified file 'lisp/vc/vc-git.el'
> --- lisp/vc/vc-git.el	2011-09-01 07:29:56 +0000
> +++ lisp/vc/vc-git.el	2011-09-06 09:19:48 +0000
> @@ -998,7 +998,7 @@ (defun vc-git-grep (regexp &optional fil
>  	    (add-to-history 'grep-history command))))
>        (when command
>  	(let ((default-directory dir)
> -	      (compilation-environment '("PAGER=")))
> +	      (compilation-environment (cons "PAGER=" compilation-environment)))
>  	  ;; Setting process-setup-function makes exit-message-function work
>  	  ;; even when async processes aren't supported.
>  	  (compilation-start command 'grep-mode))

Mixing defcustom+bufferlocal+letbinding is really asking for trouble,
although I think in this case it might just fall within the limits of
what does work.
The vc-git.el patch looks perfectly good and so does the (set...thisenv).
But I'd prefer to refrain from making compilation-environment a defcustom
for now, until we find a really good use for it.


        Stefan




This bug report was last modified 13 years and 317 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.