diff.jsp revision 5feb9d4ec8870e9b3bec8aaaa30632851e99463b
1880N/ASee LICENSE.txt included in this distribution for the specific
1880N/Afile and include the License file at LICENSE.txt.
1880N/A--%><%@ page import = "javax.servlet.*,
3794N/A return String.valueOf(n);
3789N/A int l1 = line1.length();
3789N/A int l2 = line2.length();
1880N/A ret[0] = sb.toString();
ret[1] = sb.toString();
String r1 = request.getParameter("r1");
String r2 = request.getParameter("r2");
if (r1 == null || r2 == null || r1.equals("") || r2.equals("") || r1.equals(r2) || !r1.matches("^[0-9]+(\\.[0-9]+)*$") || !r2.matches("^[0-9]+(\\.[0-9]+)*$")) {
Please pick two revisions to compare the changed from the <a href="<%=context%>/history<%=path%>">history</a>
Genre g = AnalyzerGuru.getGenre(basename);
g = AnalyzerGuru.getGenre(basename);
g = AnalyzerGuru.getGenre(in1);
if (g == Genre.IMAGE) {
<table rules="cols" cellpadding="5"><tr><th><%=basename%> (revision <%=r1%>)</th><th><%=basename%> (revision <%=r2%>)</th></tr>
<tr><td><img src="<%=context%>/raw<%=path%>?r=<%=r1%>"/></td><td><img src="<%=context%>/raw<%=path%>?r=<%=r2%>"/></td></tr></table></div><%
while ((line = reader1.readLine()) != null) {
l1.add(line);
while ((line = reader2.readLine()) != null) {
l2.add(line);
Object[] file1 = l1.toArray();
Object[] file2 = l2.toArray();
Revision rev = Diff.diff(file1, file2);
if(rev.size() == 0) {
String format = request.getParameter("format");
if(format == null || (!format.equals("o") && !format.equals("n") && !format.equals("u") && !format.equals("t")))
String pfull = request.getParameter("full");
boolean full = pfull != null && pfull.equals("1");
%><div id="difftable"><div id="diffbar"><span class="tabsel"> <span class="d"> Deleted </span> <span class="a"> Added </span> </span> | <%
if(format.equals("s")) {
%><span class="tab"><a href="<%=reqURI%>?r1=<%=r1%>&r2=<%=r2%>&format=s&full=<%=pfull%>">sdiff</a></span> <%
if(format.equals("u")) {
%><span class="tab"><a href="<%=reqURI%>?r1=<%=r1%>&r2=<%=r2%>&format=u&full=<%=pfull%>">udiff</a></span> <%
if(format.equals("t")) {
%><span class="tab"><a href="<%=reqURI%>?r1=<%=r1%>&r2=<%=r2%>&format=t&full=<%=pfull%>">text</a></span> <%
if(format.equals("o")) {
%><span class="tab"><a href="<%=reqURI%>?r1=<%=r1%>&r2=<%=r2%>&format=o&full=<%=pfull%>">old (<%=r1%>)</a></span> <%
if(format.equals("n")) {
%><span class="tab"><a href="<%=reqURI%>?r1=<%=r1%>&r2=<%=r2%>&format=n&full=<%=pfull%>">new (<%=r2%>)</a></span> | <%
%><span class="tab"><a href="<%=reqURI%>?r1=<%=r1%>&r2=<%=r2%>&format=<%=format%>&full=1"> full </a></span> <span class="tabsel"><b>compact</b></span><%
%><span class="tabsel"><b> full </b> </span> <span class="tab"> <a href="<%=reqURI%>?r1=<%=r1%>&r2=<%=r2%>&format=<%=format%>&full=0">compact</a></span><%
if(format.equals("s")) {
for (int i=0; i < rev.size(); i++) {
Delta d = rev.getDelta(i);
if(format.equals("t")) {
Chunk c1 = d.getOriginal();
Chunk c2 = d.getRevised();
int cn1 = c1.first();
int cl1 = c1.last();
int cn2 = c2.first();
int cl2 = c2.last();
file1[h] = Util.Htmlize((String)file1[h]);
file2[h] = Util.Htmlize((String)file2[h]);
if (format.equals("u")) {
%><i><%=readableLine(++ln2)%></i><%=Util.Htmlize((String)file2[j])%><br/><%
%><i><%=readableLine(j+1)%></i><%=Util.Htmlize((String)file2[j])%><br/><%
%><br/>--- <b><%=cn2 - ln2 - 16%> unchanged lines hidden</b> (<a href="<%=reqURI%>?r1=<%=r1%>&r2=<%=r2%>&format=<%=format%>&full=1#<%=ln2%>">view full</a>) --- <br/><br/><%
%><i><%=readableLine(++ln2)%></i><%=Util.Htmlize((String)file2[j])%><br/><%
} else if(format.equals("s")) {
%><i><%=readableLine(++ln1)%></i><%=Util.Htmlize((String)file1[j])%><br/><%
%><i><%=readableLine(++ln2)%></i><%=Util.Htmlize((String)file2[j])%><br/><%
%><i><%=readableLine(j+1)%></i><%=Util.Htmlize((String)file1[j])%><br/><%
%><br/>--- <b><%=cn1 - ln1 - 16%> unchanged lines hidden</b> (<a href="<%=reqURI%>?r1=<%=r1%>&r2=<%=r2%>&format=<%=format%>&full=1#<%=ln2%>">view full</a>) --- <br/><br/><%
%><i><%=readableLine(++ln1)%></i><%=Util.Htmlize((String)file1[j])%><br/><%
%><i><%=readableLine(j+1)%></i><%=Util.Htmlize((String)file2[j])%><br/><%
%><br/>--- <b><%=cn2 - ln2 - 16%> unchanged lines hidden</b> (<a href="<%=reqURI%>?r1=<%=r1%>&r2=<%=r2%>&format=<%=format%>&full=1#<%=ln2%>">view full</a>) --- <br/><br/><%
%><i><%=readableLine(++ln2)%></i><%=Util.Htmlize((String)file2[j])%><br/><%
} else if ( format.equals("o")) {
%><i><%=readableLine(++ln1)%></i><%=Util.Htmlize((String)file1[j])%><br/><%
%><i><%=readableLine(j+1)%></i><%=Util.Htmlize((String)file1[j])%><br/><%
%><br/>--- <b><%=cn1 - ln1 - 16%> unchanged lines hidden</b> (<a href="<%=reqURI%>?r1=<%=r1%>&r2=<%=r2%>&format=<%=format%>&full=1#<%=ln1%>">view full</a>) --- <br/><br/><%
%><i><%=readableLine(++ln1)%></i><%=Util.Htmlize((String)file1[j])%><br/><%
} else if ( format.equals("n")) {
%><i><%=readableLine(++ln2)%></i><%=Util.Htmlize((String)file2[j])%><br/><%
%><i><%=readableLine(j+1)%></i><%=Util.Htmlize((String)file2[j])%><br/><%
%><br/>--- <b><%=cn2 - ln2 - 16%> unchanged lines hidden</b> (<a href="<%=reqURI%>?r1=<%=r1%>&r2=<%=r2%>&format=<%=format%>&full=1#<%=ln2%>">view full</a>) --- <br/><br/><%
%><i><%=readableLine(++ln2)%></i><%=Util.Htmlize((String)file2[j])%><br/><%
if (file1.length >= ln1) {
if (format.equals("s")) {
if (full || file1.length - ln1 < 20) {
for (int j = ln1; j < file1.length ; j++) {
%><i><%=(j+1)%></i><%=Util.Htmlize((String)file1[j])%><br/><%
for (int j = ln2; j < file2.length ; j++) {
%><i><%=(j+1)%></i><%=Util.Htmlize((String)file2[j])%><br/><%
%><i><%=(j+1)%></i><%=Util.Htmlize((String)file1[j])%><br/><%
%><br/> --- <b><%=file1.length - ln1 - 8%> unchanged lines hidden</b> --- </td><td><%
%><i><%=(j+1)%></i><%=Util.Htmlize((String)file2[j])%><br/><%
%><br/>--- <b><%=file1.length - ln1 - 8%> unchanged lines hidden</b> ---</td></tr></table><%
} else if (format.equals("u")) {
if (full || file2.length - ln2 < 20) {
for (int j = ln2; j < file2.length ; j++) {
%><i><%=(j+1)%></i><%=Util.Htmlize((String)file2[j])%><br/><%
%><i><%=(j+1)%></i><%=Util.Htmlize((String)file2[j])%><br/><%
%><br/>--- <b><%=file2.length - ln2 - 8%> unchanged lines hidden</b> ---</td></tr></table><%
} else if (format.equals("o")) {
if (full || file1.length - ln1 < 20) {
for (int j = ln1; j < file1.length ; j++) {
%><i><%=(j+1)%></i><%=Util.Htmlize((String)file1[j])%><br/><%
%><i><%=(j+1)%></i><%=Util.Htmlize((String)file1[j])%><br/><%
%><br/> --- <b><%=file1.length - ln1 - 8%> unchanged lines hidden</b> ---<br/><%
} else if (format.equals("n")) {
if (full || file2.length - ln2 < 20) {
for (int j = ln2; j < file2.length ; j++) {
%><i><%=(j+1)%></i><%=Util.Htmlize((String)file2[j])%><br/><%
%><i><%=(j+1)%></i><%=Util.Htmlize((String)file2[j])%><br/><%
%><br/> --- <b><%=file2.length - ln2 - 8%> unchanged lines hidden</b> ---<br/><%
%> <div id="src">Diffs for binary files cannot be displayed! Files are <a href="<%=context%>/raw<%=path%>?r=<%=r1%>"><%=basename%>(revision <%=r1%>)</a> and
%><div class="src"><h3 class="error">Error Opening files! <%=Util.Htmlize(e.getMessage())%></h3></div><%
in1.close();
in2.close();
} else if (g == Genre.IMAGE) {
<table rules="cols" cellpadding="5"><tr><th><%=basename%> (revision <%=r1%>)</th><th><%=basename%> (revision <%=r2%>)</th></tr>
<tr><td><img src="<%=context%>/raw<%=path%>?r=<%=r1%>"/></td><td><img src="<%=context%>/raw<%=path%>?r=<%=r2%>"/></td></tr></table></div><%
%> <div class="src">Diffs for binary files cannot be displayed. Files are <a href="<%=context%>/raw<%=path%>?r=<%=r1%>"><%=basename%>(revision <%=r1%>)</a> and
%><%@include file="foot.jsp"%><%