From 9b8cb237574bcec33101260334175622d5535d61 Mon Sep 17 00:00:00 2001 From: Lee Dohm Date: Fri, 15 Apr 2016 10:48:35 -0700 Subject: [PATCH 1/4] Preserve the process.env magic for Windows --- src/environment-helpers.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/environment-helpers.js b/src/environment-helpers.js index e2baeb26b..8039e8537 100644 --- a/src/environment-helpers.js +++ b/src/environment-helpers.js @@ -67,9 +67,19 @@ function needsPatching (options = { platform: process.platform, env: process.env return false } +// Fix for #11302 because `process.env` on Windows is a magic object that offers case-insensitive +// environment variable matching. +function cloneEnv (env) { + for (var key in process.env) { + delete process.env[key] + } + + Object.assign(process.env, env) +} + function normalize (options = {}) { if (options && options.env) { - process.env = options.env + cloneEnv(options.env) } if (!options.env) { @@ -85,8 +95,8 @@ function normalize (options = {}) { // in #4126. Retain the original in case someone needs it. let shellEnv = getFromShell() if (shellEnv && shellEnv.PATH) { - process._originalEnv = process.env - process.env = shellEnv + process._originalEnv = Object.assign({}, process.env) + cloneEnv(shellEnv) } } } @@ -96,7 +106,7 @@ function replace (env) { return } - process.env = env + cloneEnv(env) } export default { getFromShell, needsPatching, normalize, replace } From 6d80dfe2280d782ade6ec43c04792fdeb2960624 Mon Sep 17 00:00:00 2001 From: Lee Dohm Date: Fri, 15 Apr 2016 12:59:57 -0700 Subject: [PATCH 2/4] Make the clone function more generic --- src/environment-helpers.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/environment-helpers.js b/src/environment-helpers.js index 8039e8537..eac2b9c0a 100644 --- a/src/environment-helpers.js +++ b/src/environment-helpers.js @@ -68,18 +68,19 @@ function needsPatching (options = { platform: process.platform, env: process.env } // Fix for #11302 because `process.env` on Windows is a magic object that offers case-insensitive -// environment variable matching. -function cloneEnv (env) { - for (var key in process.env) { - delete process.env[key] +// environment variable matching. By always cloning to `process.env` we prevent breaking the +// underlying functionality. +function clone (to, from) { + for (var key in to) { + delete to[key] } - Object.assign(process.env, env) + Object.assign(to, from) } function normalize (options = {}) { if (options && options.env) { - cloneEnv(options.env) + clone(process.env, options.env) } if (!options.env) { @@ -96,7 +97,7 @@ function normalize (options = {}) { let shellEnv = getFromShell() if (shellEnv && shellEnv.PATH) { process._originalEnv = Object.assign({}, process.env) - cloneEnv(shellEnv) + clone(process.env, shellEnv) } } } @@ -106,7 +107,7 @@ function replace (env) { return } - cloneEnv(env) + clone(process.env, env) } export default { getFromShell, needsPatching, normalize, replace } From 30d4b937571c9e1fdbf46d0d0c71d284e56dc788 Mon Sep 17 00:00:00 2001 From: Lee Dohm Date: Fri, 15 Apr 2016 19:56:25 -0700 Subject: [PATCH 3/4] :arrow_up: notifications@0.63.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 62bb8d5f1..8c0abfbf6 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "link": "0.31.1", "markdown-preview": "0.158.0", "metrics": "0.53.1", - "notifications": "0.63.1", + "notifications": "0.63.2", "open-on-github": "1.1.0", "package-generator": "1.0.0", "settings-view": "0.235.1", From 8ece1ee90929d7635d25bc76ea5f3aca442e977e Mon Sep 17 00:00:00 2001 From: Lee Dohm Date: Fri, 15 Apr 2016 20:00:21 -0700 Subject: [PATCH 4/4] :arrow_up: tabs@0.92.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8c0abfbf6..a44453cf0 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "status-bar": "1.2.3", "styleguide": "0.45.2", "symbols-view": "0.112.0", - "tabs": "0.92.1", + "tabs": "0.92.2", "timecop": "0.33.1", "tree-view": "0.206.0", "update-package-dependencies": "0.10.0",