> On Nov 17, 2016, at 12:04 PM, Francis Litterio <flitte...@gmail.com> wrote: > > 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.
None of which has anything to do with needing to re-start cygwin, which was Corinna's point. And, for the record, Explorer doesn't induce any confusion at all. A new process gets its environment when it starts. Pretty simple to understand. -- 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