On 9/8/2016 8:07 AM, Corinna Vinschen wrote:
On Sep 5 10:36, Doug Henderson wrote:
I set CYGWIN_NOWINPATH=1 in my user environment variables, i.e. in
registry, not in a cmd shell. I expect it needs to be seen when the
first cygwin1.dll instance starts, so you would need to stop all
cygwin processes and servers, just like you do when you run the cygwin
setup, for this to be effective.
Ouch, no! Environment variables are handed down from parent to child
process. On all systems, be it Windows, Cygwin, Linux or whatever.
There's *no* other magic involved. It's just a bunch of strings
inherited from the parent process.
Yes, but Explorer induces confusion as follows (seen on Windows 7):
1. Open a Command Prompt from the Start Menu (so cmd.exe is a child of
explorer.exe), and enter "echo %foobar%". See output "%foobar%".
Environment variable foobar is not set.
2. Enter "setx foobar 99" to add foobar to the persistent environment
variables in the Registry.
3. Enter "echo %foobar%" again in the same Command Prompt. Still see
"%foobar%". No change in that process's environment, as expected.
4. Launch a new Command Prompt from the Start Menu. Enter "echo
%foobar%". See "99". Clearly, Explorer updated it's environment from
the Registry and passed the change to the new child process.
This leads people to think that environment variables stored in the
Registry are special, when in fact it's Explorer's doing.
--
Fran
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple