Fix regression introduced in fe804d9b

It breaks argv[0] on posix systems, and makes it so that npm can't
determine whether node was run from an explicit location, or via "node",
so the configs default improperly.

If on windows, don't do this behavior.  On posix, go back to the old
behavior.
This commit is contained in:
isaacs
2011-01-05 11:12:36 -08:00
committed by Ryan Dahl
parent b6dafc1a47
commit 48334dc0b1

View File

@@ -536,10 +536,15 @@
var cwd = process.cwd();
var path = requireNative('path');
var isWindows = process.platform === 'win32';
// Make process.argv[0] and process.argv[1] into full paths.
if ('/\\'.indexOf(process.argv[0].charAt(0)) < 0
&& process.argv[0].charAt(1) != ':') {
// Make process.argv[0] and process.argv[1] into full paths, but only
// touch argv[0] if it's not a system $PATH lookup.
// TODO: Make this work on Windows as well. Note that "node" might
// execute cwd\node.exe, or some %PATH%\node.exe on Windows,
// and that every directory has its own cwd, so d:node.exe is valid.
var argv0 = process.argv[0];
if (!isWindows && argv0.indexOf('/') !== -1 && argv0.charAt(0) !== '/') {
process.argv[0] = path.join(cwd, process.argv[0]);
}