mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-02-13 19:52:20 +00:00
DtSvc:EnvControl: Use more modern and less dangerous methods of manipulating the env.
This should work for both linux and the BSD's... It should hopefully solve the corrupted environment errors Marcin sees on fbsd 9 amd64.
This commit is contained in:
parent
a128f8e4e4
commit
27d5cc033d
1 changed files with 20 additions and 0 deletions
|
@ -424,6 +424,10 @@ _DtEnvControl(
|
|||
_postDtEnvironment.binPath = XtMalloc(bytes_needed);
|
||||
#ifdef sun
|
||||
if (ptr = strstr(tempString, "/usr/openwin/bin"))
|
||||
#elif defined(CSRG_BASED)
|
||||
if (ptr = strstr(tempString, "/usr/X11R6/bin"))
|
||||
#elif defined(linux)
|
||||
if (ptr = strstr(tempString, "/usr/bin"))
|
||||
#else
|
||||
if (ptr = strstr(tempString, "/usr/bin/X11"))
|
||||
#endif
|
||||
|
@ -817,6 +821,10 @@ static void _EnvAdd
|
|||
{
|
||||
_DtSvcProcessLock();
|
||||
if (envBitVector & bv_flag) {
|
||||
#if defined(CSRG_BASED) || defined(linux)
|
||||
setenv(envVar, envVarSetting + strlen(envVar) + 1, 1);
|
||||
#else
|
||||
|
||||
register int i;
|
||||
size_t envVarLen = strlen(envVar);
|
||||
char *envPtr = NULL;
|
||||
|
@ -850,6 +858,7 @@ static void _EnvAdd
|
|||
/* This should never happen */
|
||||
putenv(strdup(envVarSetting));
|
||||
}
|
||||
#endif /* linux || CSRG_BASED */
|
||||
}
|
||||
else
|
||||
putenv(strdup(envVarSetting));
|
||||
|
@ -919,6 +928,16 @@ _DtEnvRemove(
|
|||
&& ( p[len] == '=' )
|
||||
&& !strncmp(p, str, len))
|
||||
{
|
||||
#if defined(linux) || defined(CSRG_BASED)
|
||||
/* JET - 2/19/99
|
||||
It seems much safer to let libc worry about this
|
||||
rather than try to do it ourselves.
|
||||
*/
|
||||
|
||||
if (str)
|
||||
unsetenv(str);
|
||||
#else
|
||||
|
||||
freeMe = pEnviron2[index];
|
||||
|
||||
/* just move the last one into the gap - any
|
||||
|
@ -930,6 +949,7 @@ _DtEnvRemove(
|
|||
pEnviron2[count - 1] = NULL;
|
||||
|
||||
XtFree (freeMe);
|
||||
#endif /* linux || CSRG_BASED */
|
||||
return(0);
|
||||
}
|
||||
pEnviron++;
|
||||
|
|
Loading…
Reference in a new issue