Don't prefix paths with drive letters with dots in mkdirpSync. [closes #238]

Former-commit-id: dd0c8d7b1906210e5f26604d4149ba542727c78d
This commit is contained in:
John-David Dalton
2013-04-12 13:15:44 -07:00
parent d1498bb9fb
commit 6b920fa5e6

View File

@@ -9,6 +9,9 @@
/** Load other modules */
var _ = require('../lodash.js');
/** Used to indicate if running in Windows */
var isWindows = process.platform == 'win32';
/*--------------------------------------------------------------------------*/
/**
@@ -17,7 +20,7 @@
* @memberOf util.path
* @type String
*/
var sep = path.sep || (process.platform == 'win32' ? '\\' : '/');
var sep = path.sep || (isWindows ? '\\' : '/');
/**
* The escaped path separator used for inclusion in RegExp strings.
@@ -27,6 +30,9 @@
*/
var sepEscaped = sep.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
/** Used to determine if a path is prefixed with a drive letter, dot, or slash */
var rePrefixed = RegExp('^(?:' + (isWindows ? '[a-zA-Z]:|' : '') + '\\.?)' + sepEscaped);
/*--------------------------------------------------------------------------*/
/**
@@ -39,7 +45,7 @@
*/
function mkdirpSync(dirname, mode) {
// ensure relative paths are prefixed with `./`
if (!RegExp('^\\.?' + sepEscaped).test(dirname)) {
if (!rePrefixed.test(dirname)) {
dirname = '.' + sep + dirname;
}
dirname.split(sep).reduce(function(currPath, segment) {