* environ.cc (spenvs): Re-force SYSTEMROOT to always be included in

environment.
(build_env): Ditto.
This commit is contained in:
Christopher Faylor 2005-03-30 22:06:32 +00:00
parent 6829b6e914
commit 4e6c0729d1
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2005-03-30 Christopher Faylor <cgf@timesys.com>
* environ.cc (spenvs): Re-force SYSTEMROOT to always be included in
environment.
(build_env): Ditto.
2005-03-30 Christopher Faylor <cgf@timesys.com>
* environ.cc (spenv::retrieve): Revert most of previous change.

View File

@ -878,7 +878,7 @@ static NO_COPY spenv spenvs[] =
{NL ("LOGONSERVER="), false, false, &cygheap_user::env_logsrv},
{NL ("PATH="), false, true, NULL},
{NL ("SYSTEMDRIVE="), false, false, NULL},
{NL ("SYSTEMROOT="), true, false, &cygheap_user::env_systemroot},
{NL ("SYSTEMROOT="), true, true, &cygheap_user::env_systemroot},
{NL ("USERDOMAIN="), false, false, &cygheap_user::env_domain},
{NL ("USERNAME="), false, false, &cygheap_user::env_name},
{NL ("USERPROFILE="), false, false, &cygheap_user::env_userprofile}
@ -984,8 +984,9 @@ build_env (const char * const *envp, char *&envblock, int &envc,
if (!saw_spenv[i] && (spenvs[i].add_always || cygheap->user.issetuid ()))
{
*dstp = spenvs[i].retrieve (no_envblock);
if (*dstp && !no_envblock && *dstp != env_dontadd)
if (*dstp && (!no_envblock || spenvs[i].force) && *dstp != env_dontadd)
{
*pass_dstp = *dstp;
tl += strlen (*dstp) + 1;
dstp++;
}