Subject: bug#67540: 29.1; Emacs on Windows incorrectly capitalizes some environment variables

From: Eli Zaretskii <[email-masked]>
Date: Thu, 30 Nov 2023 09:10:43 +0200

tags 67540 wontfix
thanks

> From: Dave Abrahams <[email-masked]>
> Date: Wed, 29 Nov 2023 18:29:26 -0800
> 
> 
> 
> emacs -Q
> M-! set
> 
> Now issue the "set" command from a CMD shell. Notice that the "Path"
> environment variable has been renamed to "PATH" in Emacs.  This renaming
> interferes with some tools operating correctly e.g. the swift compiler
> (see https://swift.org).

You are saying that the swift compiler doesn't recognize "PATH"?  If
so, it's a bug in the swift compiler, since look up of environment
variables by cmd.exe at least is case-insensitive on Windows, and I
have yet to see a Windows program which doesn't do the same.  I
suggest reporting a bug against swift.

We cannot avoid up-casing Path and ComSpec in Emacs because that would
break many places in Emacs that assume they are spelled in CAPS.
(Obviously, PATH is much more critical than COMSPEC, but still.)  And
Emacs Lisp programs don't compare these variables case-insensitively.

So if swift and some other programs must have Path and not PATH, my
suggestion is to perform the letter-case changes when you invoke those
programs, and them alone, as doing that globally in Emacs will cause
problems elsewhere.