GNU bug report logs -
#32129
26.1; Bug in add-dir-local-variable when used with eval, progn and setenv
Previous Next
Reported by: Luis Gerhorst <privat <at> luisgerhorst.de>
Date: Wed, 11 Jul 2018 23:08:01 UTC
Severity: normal
Tags: notabug
Found in version 26.1
Done: Noam Postavsky <npostavs <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Luis Gerhorst <privat <at> luisgerhorst.de> writes:
> (1) Open Emacs with emacs -Q
> (2) Type the following code into *scratch*
>
> (add-dir-local-variable
> 'c-mode
> 'eval
> '(progn (make-local-variable 'process-environment)
> (setq process-environment (copy-sequence process-environment))
> (setenv "TEST" "hello")))
>
> (3) M-x eval-buffer
>
> Expected .dir-locals.el contents:
> ((c-mode (eval . (progn (make-local-variable 'process-environment)
> (setq process-environment (copy-sequence process-environment))
> (setenv "TEST" "hello")))))
>
> Actual contents:
> ((c-mode (eval progn (make-local-variable 'process-environment)
> (setq process-environment (copy-sequence process-environment))
> (setenv "TEST" "hello"))))
>
> When I open a C file and inspect process-environment, TEST is not set.
>
> When I manually create a .dir-locals.el with the expected contents, it
> works.
When I manually create a .dir-locals.el with the actual contents it
works too.
> Please correct me if I'm using add-dir-local-variable wrong, I was not
> able to find a version that works as expected with the above
> progn. Strangely, if I use (progn (message "hello")), instead of the
> progn with setenv, "hello" gets printed every time I open a C file.
I think add-dir-local-variable is fine, both the expected and actual
values you posted are the same (the expected one just happens to use
dotted pair notation).
Maybe the problem is that you need to use
(setq-local process-environment ...)
Otherwise your eval clause sets the global value (which is possibly
being clobbered by other things in your config?).
This bug report was last modified 6 years and 314 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.