From 98070275b53578d1d131d0e74f4f780e572ffc80 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 14 Feb 2018 17:22:36 -0800 Subject: [PATCH] Normalize command line paths with windows drive letters --- src/main-process/atom-application.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main-process/atom-application.js b/src/main-process/atom-application.js index c2d40e92b72..9678240c9a3 100644 --- a/src/main-process/atom-application.js +++ b/src/main-process/atom-application.js @@ -838,13 +838,12 @@ class AtomApplication extends EventEmitter { let existingWindow if (!newWindow) { existingWindow = this.windowForPaths(pathsToOpen, devMode) - const stats = pathsToOpen.map(pathToOpen => fs.statSyncNoException(pathToOpen)) if (!existingWindow) { let lastWindow = window || this.getLastFocusedWindow() if (lastWindow && lastWindow.devMode === devMode) { if (addToLastWindow || ( - stats.every(s => s.isFile && s.isFile()) || - (stats.some(s => s.isDirectory && s.isDirectory()) && !lastWindow.hasProjectPath()))) { + locationsToOpen.every(({stat}) => stat && stat.isFile()) || + (locationsToOpen.some(({stat}) => stat && stat.isDirectory()) && !lastWindow.hasProjectPath()))) { existingWindow = lastWindow } } @@ -1267,11 +1266,11 @@ class AtomApplication extends EventEmitter { initialLine = initialColumn = null } - if (url.parse(pathToOpen).protocol == null) { - pathToOpen = path.resolve(executedFrom, fs.normalize(pathToOpen)) - } + const normalizedPath = path.normalize(path.resolve(executedFrom, fs.normalize(pathToOpen))) + const stat = fs.statSyncNoException(normalizedPath) + if (stat) pathToOpen = normalizedPath - return {pathToOpen, initialLine, initialColumn} + return {pathToOpen, stat, initialLine, initialColumn} } // Opens a native dialog to prompt the user for a path.