From 2b5a956ca23448d60cf4858218ae1a489391bbbc Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Tue, 13 Sep 2016 15:05:02 -0700 Subject: [PATCH] Fix NPE in terminal code --- .../terminal/electron-browser/terminalInstance.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts b/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts index 56365a184f0..47e7ac5cc06 100644 --- a/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts +++ b/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts @@ -216,9 +216,9 @@ export class TerminalInstance implements ITerminalInstance { return typeof data === 'string' ? data.replace(TerminalInstance.EOL_REGEX, os.EOL) : data; } - private createProcess(workspace: IWorkspace, name?: string, shell?: IShell) { + private createProcess(workspace: IWorkspace, name: string, shell: IShell) { let locale = this.configHelper.isSetLocaleVariables() ? platform.locale : undefined; - if (!shell) { + if (!shell.executable) { shell = this.configHelper.getShell(); } let env = TerminalInstance.createTerminalEnv(process.env, shell, workspace, locale); @@ -252,9 +252,11 @@ export class TerminalInstance implements ITerminalInstance { let env = TerminalInstance.cloneEnv(parentEnv); env['PTYPID'] = process.pid.toString(); env['PTYSHELL'] = shell.executable; - shell.args.forEach((arg, i) => { - env[`PTYSHELLARG${i}`] = arg; - }); + if (shell.args) { + shell.args.forEach((arg, i) => { + env[`PTYSHELLARG${i}`] = arg; + }); + } env['PTYCWD'] = TerminalInstance.sanitizeCwd(workspace ? workspace.resource.fsPath : os.homedir()); if (locale) { env['LANG'] = TerminalInstance.getLangEnvVariable(locale);