Change 11405 by nick@camel-linux on 2001/07/18 06:50:33
Integrate Sarathy's Win32 $ENV{'PATH'}/system fixes (11399, 11400)
from perl5.6*
Affected files ...
... //depot/perl/win32/perlhost.h#38 integrate
... //depot/perl/win32/win32.c#165 integrate
Differences ...
==== //depot/perl/win32/perlhost.h#38 (text) ====
Index: perl/win32/perlhost.h
--- perl/win32/perlhost.h.~1~ Wed Jul 18 01:00:06 2001
+++ perl/win32/perlhost.h Wed Jul 18 01:00:06 2001
@@ -2315,9 +2315,10 @@
void
CPerlHost::Clearenv(void)
{
+ dTHXo;
char ch;
LPSTR lpPtr, lpStr, lpEnvPtr;
- if(m_lppEnvList != NULL) {
+ if (m_lppEnvList != NULL) {
/* set every entry to an empty string */
for(DWORD index = 0; index < m_dwEnvCount; ++index) {
char* ptr = strchr(m_lppEnvList[index], '=');
@@ -2340,6 +2341,8 @@
ch = *++lpPtr;
*lpPtr = 0;
Add(lpStr);
+ if (!w32_pseudo_id)
+ (void)win32_putenv(lpStr);
*lpPtr = ch;
}
lpStr += strlen(lpStr) + 1;
@@ -2352,22 +2355,23 @@
char*
CPerlHost::Getenv(const char *varname)
{
- char* pEnv = Find(varname);
- if(pEnv == NULL) {
- pEnv = win32_getenv(varname);
+ dTHXo;
+ if (w32_pseudo_id) {
+ char *pEnv = Find(varname);
+ if (pEnv && !*pEnv)
+ return pEnv;
}
- else {
- if(!*pEnv)
- pEnv = 0;
- }
-
- return pEnv;
+ return win32_getenv(varname);
}
int
CPerlHost::Putenv(const char *envstring)
{
+ dTHXo;
Add(envstring);
+ if (!w32_pseudo_id)
+ return win32_putenv(envstring);
+
return 0;
}
==== //depot/perl/win32/win32.c#165 (text) ====
Index: perl/win32/win32.c
--- perl/win32/win32.c.~1~ Wed Jul 18 01:00:06 2001
+++ perl/win32/win32.c Wed Jul 18 01:00:06 2001
@@ -518,7 +518,7 @@
*/
const char* defaultshell = (IsWinNT()
? "cmd.exe /x/c" : "command.com /c");
- const char *usershell = getenv("PERL5SHELL");
+ const char *usershell = PerlEnv_getenv("PERL5SHELL");
w32_perlshell_items = tokenize(usershell ? usershell : defaultshell,
&w32_perlshell_tokens,
&w32_perlshell_vec);
@@ -3096,7 +3096,7 @@
}
/* look in PATH */
- pathstr = win32_getenv("PATH");
+ pathstr = PerlEnv_getenv("PATH");
New(0, fullcmd, MAX_PATH+1, char);
curfullcmd = fullcmd;
End of Patch.