OSDN Git Service

* environ.cc (spenvs): Re-force SYSTEMROOT to always be included in
authorcgf <cgf>
Wed, 30 Mar 2005 22:06:30 +0000 (22:06 +0000)
committercgf <cgf>
Wed, 30 Mar 2005 22:06:30 +0000 (22:06 +0000)
environment.
(build_env): Ditto.

winsup/cygwin/ChangeLog
winsup/cygwin/environ.cc

index 3252a1f..68802ef 100644 (file)
@@ -1,5 +1,11 @@
 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.
        (build_env): Ditto.  Rework to track environment variables which need
        to always be in the windows environment in a separate array.
index 18bc4ab..e7b17c3 100644 (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++;
            }