]> code.delx.au - gnu-emacs/blobdiff - src/callproc.c
Keep w32 environment settings internal only
[gnu-emacs] / src / callproc.c
index 07297820cacf041ef4ee6c05b8441906692b5d47..e8d089cf20e201d15e340c3b25b703fd83fa0a15 100644 (file)
@@ -1094,7 +1094,7 @@ add_env (char **env, char **new_env, char *string)
       char *p = *ep, *q = string;
       while (ok)
        {
-         if (*q != *p)
+         if (*p && *q != *p)
            break;
          if (*q == 0)
            /* The string is a lone variable name; keep it for now, we
@@ -1375,6 +1375,20 @@ getenv_internal (const char *var, ptrdiff_t varlen, char **value,
                         Vprocess_environment))
     return *value ? 1 : 0;
 
+  /* On Windows we make some modifications to Emacs' enviroment
+     without recording them in Vprocess_environment.  */
+#ifdef WINDOWSNT
+  {
+    char* tmpval = getenv (var);
+    if (tmpval)
+      {
+        *value = tmpval;
+        *valuelen = strlen (tmpval);
+        return 1;
+      }
+  }
+#endif
+
   /* For DISPLAY try to get the values from the frame or the initial env.  */
   if (strcmp (var, "DISPLAY") == 0)
     {