diff2html
Advanced tools
Comparing version 2.0.0-rc.3 to 2.0.0-rc.4
{ | ||
"name": "diff2html", | ||
"version": "2.0.0-rc.3", | ||
"version": "2.0.0-rc.4", | ||
"homepage": "http://rtfpessoa.github.io/diff2html/", | ||
@@ -5,0 +5,0 @@ "description": "Fast Diff to colorized HTML", |
@@ -14,2 +14,4 @@ /* | ||
var separator = '/'; | ||
function PrinterUtils() { | ||
@@ -36,7 +38,54 @@ } | ||
PrinterUtils.prototype.getDiffName = function(file) { | ||
var oldFilename = file.oldName; | ||
var newFilename = file.newName; | ||
var oldFilename = unifyPath(file.oldName); | ||
var newFilename = unifyPath(file.newName); | ||
if (oldFilename && newFilename && oldFilename !== newFilename && !isDevNullName(oldFilename) && !isDevNullName(newFilename)) { | ||
return oldFilename + ' -> ' + newFilename; | ||
var prefixPaths = []; | ||
var suffixPaths = []; | ||
var oldFilenameParts = oldFilename.split(separator); | ||
var newFilenameParts = newFilename.split(separator); | ||
var oldFilenamePartsSize = oldFilenameParts.length; | ||
var newFilenamePartsSize = newFilenameParts.length; | ||
var i = 0; | ||
var j = oldFilenamePartsSize - 1; | ||
var k = newFilenamePartsSize - 1; | ||
while (i < j && i < k) { | ||
if (oldFilenameParts[i] === newFilenameParts[i]) { | ||
prefixPaths.push(newFilenameParts[i]); | ||
i += 1; | ||
} else { | ||
break; | ||
} | ||
} | ||
while (j > i && k > i) { | ||
if (oldFilenameParts[j] === newFilenameParts[k]) { | ||
suffixPaths.unshift(newFilenameParts[k]); | ||
j -= 1; | ||
k -= 1; | ||
} else { | ||
break; | ||
} | ||
} | ||
var finalPrefix = prefixPaths.join(separator); | ||
var finalSuffix = suffixPaths.join(separator); | ||
var oldRemainingPath = oldFilenameParts.slice(i, j + 1).join(separator); | ||
var newRemainingPath = newFilenameParts.slice(i, k + 1).join(separator); | ||
if (finalPrefix.length && finalSuffix.length) { | ||
return finalPrefix + separator + '{' + oldRemainingPath + ' → ' + newRemainingPath + '}' + separator + finalSuffix; | ||
} else if (finalPrefix.length) { | ||
return finalPrefix + separator + '{' + oldRemainingPath + ' → ' + newRemainingPath + '}'; | ||
} else if (finalSuffix.length) { | ||
return '{' + oldRemainingPath + ' → ' + newRemainingPath + '}' + separator + finalSuffix; | ||
} | ||
return oldFilename + ' → ' + newFilename; | ||
} else if (newFilename && !isDevNullName(newFilename)) { | ||
@@ -48,3 +97,3 @@ return newFilename; | ||
return 'Unknown filename'; | ||
return 'unknown/file/path'; | ||
}; | ||
@@ -134,2 +183,10 @@ | ||
function unifyPath(path) { | ||
if (path) { | ||
return path.replace('\\', '/'); | ||
} | ||
return path; | ||
} | ||
function isDevNullName(name) { | ||
@@ -136,0 +193,0 @@ return name.indexOf('dev/null') !== -1; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
296256
5677