// windows version exports.normalize = function(path) { var result = splitDeviceRe.exec(path), device = result[1] || '', isUnc = device && device.charAt(1) !== ':', isAbsolute = exports.isAbsolute(path), tail = result[3], trailingSlash = /[////]$/.test(tail);
// If device is a drive letter, we'll normalize to lower case. if (device && device.charAt(1) === ':') { device = device[0].toLowerCase() + device.substr(1); }
if (!tail && !isAbsolute) { tail = '.'; } if (tail && trailingSlash) { tail += '//'; }
// Convert slashes to backslashes when `device` points to an UNC root. // Also squash multiple slashes into a single one where appropriate. if (isUnc) { device = normalizeUNCRoot(device); }