diff.jsp revision 9bb6ab643caa1e04026da68eaef430c82a206350
2d0611ffc9f91c5fc2ddccb93f9a3d17791ae650takashiCDDL HEADER START
dc0d8d65d35787d30a275895ccad8d8e1b58a5edndThe contents of this file are subject to the terms of the
dc0d8d65d35787d30a275895ccad8d8e1b58a5edndCommon Development and Distribution License (the "License").
See LICENSE.txt included in this distribution for the specific
file and include the License file at LICENSE.txt.
ident "@(#)diff.jsp 1.2 05/12/01 SMI"
--%><%@ page import = "javax.servlet.*,
java.io.*,
%><%@include file="mast.jsp"%><%!
return String.valueOf(n);
int l1 = line1.length();
int l2 = line2.length();
sb.insert(i, "<span class=\"d\">");
ret[0] = sb.toString();
sb.insert(i, "<span class=\"a\">");
ret[1] = sb.toString();
final String rp1 = request.getParameter("r1");
final String rp2 = request.getParameter("r2");
String srcRoot = environment.getSourceRootFile().getAbsolutePath();
tmp = rp1.split("@");
if (tmp != null && tmp.length == 2) {
rpath1 = new File(srcRoot+URLDecoder.decode(tmp[0], "ISO-8859-1"));
r1 = URLDecoder.decode(tmp[1], "ISO-8859-1");
tmp = rp2.split("@");
if (tmp != null && tmp.length == 2) {
if (tmp != null && tmp.length == 2) {
rpath2 = new File(srcRoot+URLDecoder.decode(tmp[0], "ISO-8859-1"));
r2 = URLDecoder.decode(tmp[1], "ISO-8859-1");
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=<%=rp1%>&r2=<%=rp2%>&format=s&full=<%=pfull%>">sdiff</a></span> <%
if(format.equals("u")) {
%><span class="tab"><a href="<%=reqURI%>?r1=<%=rp1%>&r2=<%=rp2%>&format=u&full=<%=pfull%>">udiff</a></span> <%
if(format.equals("t")) {
%><span class="tab"><a href="<%=reqURI%>?r1=<%=rp1%>&r2=<%=rp2%>&format=t&full=<%=pfull%>">text</a></span> <%
if(format.equals("o")) {
%><span class="tab"><a href="<%=reqURI%>?r1=<%=rp1%>&r2=<%=rp2%>&format=o&full=<%=pfull%>">old (<%=r1%>)</a></span> <%
if(format.equals("n")) {
%><span class="tab"><a href="<%=reqURI%>?r1=<%=rp1%>&r2=<%=rp2%>&format=n&full=<%=pfull%>">new (<%=r2%>)</a></span> | <%
%><span class="tab"><a href="<%=reqURI%>?r1=<%=rp1%>&r2=<%=rp2%>&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=<%=rp1%>&r2=<%=rp2%>&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.jspf"%><%