From ace0793755d625af8ecf83b06e60906a9f47d4fd Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Fri, 18 Aug 2017 10:07:24 -0700 Subject: [PATCH] Have terminal env config apply case insensitively Fixes #32787 --- .../electron-browser/terminalInstance.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts b/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts index 3b2a163b3328a..ddbb38a385903 100644 --- a/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts +++ b/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts @@ -560,8 +560,23 @@ export class TerminalInstance implements ITerminalInstance { this._configHelper.mergeDefaultShellPathAndArgs(shell); } this._initialCwd = this._getCwd(this._shellLaunchConfig, this._historyService.getLastActiveWorkspaceRoot()); - const platformKey = platform.isWindows ? 'windows' : platform.isMacintosh ? 'osx' : 'linux'; - const envFromConfig = { ...process.env, ...this._configHelper.config.env[platformKey] }; + let envFromConfig: IStringDictionary; + if (platform.isWindows) { + envFromConfig = { ...process.env }; + for (let configKey in this._configHelper.config.env['windows']) { + let actualKey = configKey; + for (let envKey in envFromConfig) { + if (configKey.toLowerCase() === envKey.toLowerCase()) { + actualKey = envKey; + break; + } + } + envFromConfig[actualKey] = this._configHelper.config.env['windows'][configKey]; + } + } else { + const platformKey = platform.isMacintosh ? 'osx' : 'linux'; + envFromConfig = { ...process.env, ...this._configHelper.config.env[platformKey] }; + } const env = TerminalInstance.createTerminalEnv(envFromConfig, shell, this._initialCwd, locale, this._cols, this._rows); this._process = cp.fork(Uri.parse(require.toUrl('bootstrap')).fsPath, ['--type=terminal'], { env,