Change 13453 by gsar@onru on 2001/12/04 07:54:58

        tweak change#11399 to use an explicit flag rather than
        ass_u_ming w32_pseudo_id will only be zero for the real
        toplevel interpreter; avoids multiple hosts from diddling
        the environment at the same time

Affected files ...

.... //depot/maint-5.6/perl/win32/perlhost.h#14 edit

Differences ...

==== //depot/maint-5.6/perl/win32/perlhost.h#14 (text) ====
Index: perl/win32/perlhost.h
--- perl/win32/perlhost.h.~1~   Tue Dec  4 01:00:05 2001
+++ perl/win32/perlhost.h       Tue Dec  4 01:00:05 2001
@@ -197,6 +197,7 @@
 
     DWORD   m_dwEnvCount;
     LPSTR*  m_lppEnvList;
+    BOOL    m_bTopLevel;       // is this a toplevel host?
 };
 
 
@@ -1898,6 +1899,7 @@
 
     m_dwEnvCount = 0;
     m_lppEnvList = NULL;
+    m_bTopLevel = TRUE;
 
     CopyMemory(&m_hostperlMem, &perlMem, sizeof(perlMem));
     CopyMemory(&m_hostperlMemShared, &perlMemShared, sizeof(perlMemShared));
@@ -1946,6 +1948,7 @@
 
     m_dwEnvCount = 0;
     m_lppEnvList = NULL;
+    m_bTopLevel = FALSE;
 
     CopyMemory(&m_hostperlMem, &perlMem, sizeof(perlMem));
     CopyMemory(&m_hostperlMemShared, &perlMemShared, sizeof(perlMemShared));
@@ -2000,6 +2003,7 @@
 
     m_dwEnvCount = 0;
     m_lppEnvList = NULL;
+    m_bTopLevel = FALSE;
 
     /* duplicate environment info */
     LPSTR lpPtr;
@@ -2313,7 +2317,7 @@
            ch = *++lpPtr;
            *lpPtr = 0;
            Add(lpStr);
-           if (!w32_pseudo_id)
+           if (m_bTopLevel)
                (void)win32_putenv(lpStr);
            *lpPtr = ch;
        }
@@ -2328,7 +2332,7 @@
 CPerlHost::Getenv(const char *varname)
 {
     dTHXo;
-    if (w32_pseudo_id) {
+    if (!m_bTopLevel) {
        char *pEnv = Find(varname);
        if (pEnv && *pEnv)
            return pEnv;
@@ -2341,7 +2345,7 @@
 {
     dTHXo;
     Add(envstring);
-    if (!w32_pseudo_id)
+    if (m_bTopLevel)
        return win32_putenv(envstring);
 
     return 0;
End of Patch.

Reply via email to