in public/js/util.js [515:563]
diffline: function(line1, line2) {
var ret1 = [];
var ret2 = [];
var s = 0;
var m = line1.length - 1;
var n = line2.length - 1;
while (s <= m && s <= n && (line1.charAt(s) == line2.charAt(s))) {
s++;
}
while (s <= m && s <= n && (line1.charAt(m) == line2.charAt(n))) {
m--;
n--;
}
// deleted
if (s <= m) {
ret1.push({t:0, str: line1.substring(0, s)});
//StringBuilder sb = new StringBuilder();
//sb.append(Util.htmlize(line1.substring(0, s)));
ret1.push({t:1, str: line1.substring(s, m + 1)});
ret1.push({t:0, str: line1.substring(m+1, line1.length)});
//sb.append(Util.htmlize(line1.substring(m + 1, line1.length())));
//ret1.push({t:0, str: line1.substring(0, s)})
// = sb.toString();
} else {
ret1.push({t:0, str: line1});
//ret[0] = Util.htmlize(line1.toString()); // no change
}
// added
if (s <= n) {
ret2.push({t:0,str:line2.substring(0, s)});
ret2.push({t:1,str:line2.substring(s, n + 1)});
ret2.push({t:0,str:line2.substring(n + 1, line2.length)});
//StringBuilder sb = new StringBuilder();
//sb.append(Util.htmlize(line2.substring(0, s)));
//sb.append(HtmlConsts.SPAN_A);
//sb.append(Util.htmlize(line2.substring(s, n + 1)));
//sb.append(HtmlConsts.ZSPAN);
//sb.append(Util.htmlize(line2.substring(n + 1, line2.length())));
//ret[1] = sb.toString();
} else {
ret2.push({t:0,str: line2});
//ret[1] = Util.htmlize(line2.toString()); // no change
}
return {lhs: ret1, rhs: ret2};
},