diff.jsp revision 830
7874bcd6028d1efbb4451c8b5cf5b2ac8d77af74Lennart Poettering<%--
7874bcd6028d1efbb4451c8b5cf5b2ac8d77af74Lennart PoetteringCDDL HEADER START
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
7874bcd6028d1efbb4451c8b5cf5b2ac8d77af74Lennart PoetteringThe contents of this file are subject to the terms of the
7874bcd6028d1efbb4451c8b5cf5b2ac8d77af74Lennart PoetteringCommon Development and Distribution License (the "License").
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-SzmekYou may not use this file except in compliance with the License.
7874bcd6028d1efbb4451c8b5cf5b2ac8d77af74Lennart Poettering
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-SzmekSee LICENSE.txt included in this distribution for the specific
7874bcd6028d1efbb4451c8b5cf5b2ac8d77af74Lennart Poetteringlanguage governing permissions and limitations under the License.
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-SzmekWhen distributing Covered Code, include this CDDL HEADER in each
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmekfile and include the License file at LICENSE.txt.
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-SzmekIf applicable, add the following below this CDDL HEADER, with the
7874bcd6028d1efbb4451c8b5cf5b2ac8d77af74Lennart Poetteringfields enclosed by brackets "[]" replaced with your own identifying
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmekinformation: Portions Copyright [yyyy] [name of copyright owner]
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-SzmekCDDL HEADER END
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
7874bcd6028d1efbb4451c8b5cf5b2ac8d77af74Lennart PoetteringCopyright 2009 Sun Microsystems, Inc. All rights reserved.
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-SzmekUse is subject to license terms.
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
7874bcd6028d1efbb4451c8b5cf5b2ac8d77af74Lennart Poetteringident "@(#)diff.jsp 1.2 05/12/01 SMI"
7874bcd6028d1efbb4451c8b5cf5b2ac8d77af74Lennart Poettering
21ac6ff143cc8bebfbd1818af28e8c6f82cd5265Zbigniew Jędrzejewski-Szmek--%><%@ page import = "javax.servlet.*,
21ac6ff143cc8bebfbd1818af28e8c6f82cd5265Zbigniew Jędrzejewski-Szmekjava.lang.*,
7874bcd6028d1efbb4451c8b5cf5b2ac8d77af74Lennart Poetteringjavax.servlet.http.*,
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmekjava.util.*,
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmekjava.io.*,
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmekjava.text.*,
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmekjava.net.URLDecoder,
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmekorg.opensolaris.opengrok.analysis.*,
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmekorg.opensolaris.opengrok.analysis.FileAnalyzer.Genre,
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmekorg.opensolaris.opengrok.web.*,
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmekorg.opensolaris.opengrok.history.*,
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmekorg.apache.commons.jrcs.diff.*"
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek%><%@include file="mast.jsp"%><%!
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-SzmekString readableLine(int n) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if (n < 10) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek return " " + n;
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } else {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek return String.valueOf(n);
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek}
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-SzmekString[] diffline(String line1, String line2) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek int i=0, j=1;
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek int l1 = line1.length();
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek int l2 = line2.length();
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek String[] ret = new String[2];
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek while (i < l1 && i < l2 && (line1.charAt(i) == line2.charAt(i)))
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek i++;
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek while (j < l1 && j < l2 && (line1.charAt(l1 - j) == line2.charAt(l2 - j)))
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek j++;
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek StringBuilder sb = new StringBuilder(line1);
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if(i <= l1 - j) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek sb.insert(i, "<span class=\"d\">");
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek sb.insert(sb.length()-j+1, "</span>");
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek ret[0] = sb.toString();
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } else {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek ret[0] = line1;
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if(i <= l2 - j) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek sb = new StringBuilder(line2);
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek sb.insert(i, "<span class=\"a\">");
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek sb.insert(sb.length()-j+1, "</span>");
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek ret[1] = sb.toString();
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } else {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek ret[1] = line2;
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek return ret;
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek}
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek%><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmekif (valid) {
e9dd9f9547350c7dc0473583b5c2228dc8f0ab76Jason St. John final String rp1 = request.getParameter("r1");
20b3f379cfd44e61dd1838a107f1d5363fab5b5dZbigniew Jędrzejewski-Szmek final String rp2 = request.getParameter("r2");
9b9b3d36b8ffe5b41c1455bffd44a9d11efc8aeeMaciej Wereski String srcRoot = environment.getSourceRootFile().getAbsolutePath();
9b9b3d36b8ffe5b41c1455bffd44a9d11efc8aeeMaciej Wereski
20b3f379cfd44e61dd1838a107f1d5363fab5b5dZbigniew Jędrzejewski-Szmek String r1 = null;
20b3f379cfd44e61dd1838a107f1d5363fab5b5dZbigniew Jędrzejewski-Szmek String r2 = null;
7b870f607bcb8f445d4d29a776d12d9de3bf1487Jan Engelhardt File rpath1 = null;
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek File rpath2 = null;
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek String[] tmp;
20b3f379cfd44e61dd1838a107f1d5363fab5b5dZbigniew Jędrzejewski-Szmek try {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek tmp = rp1.split("@");
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if (tmp != null && tmp.length == 2) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek rpath1 = new File(srcRoot+URLDecoder.decode(tmp[0], "UTF-8"));
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek r1 = URLDecoder.decode(tmp[1], "UTF-8");
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
9b9b3d36b8ffe5b41c1455bffd44a9d11efc8aeeMaciej Wereski } catch (UnsupportedEncodingException e) {
9b9b3d36b8ffe5b41c1455bffd44a9d11efc8aeeMaciej Wereski }
9b9b3d36b8ffe5b41c1455bffd44a9d11efc8aeeMaciej Wereski
9b9b3d36b8ffe5b41c1455bffd44a9d11efc8aeeMaciej Wereski try {
0f85cbe105b7c4bde19fc7f12bf79429349182ddZbigniew Jędrzejewski-Szmek tmp = rp2.split("@");
0f85cbe105b7c4bde19fc7f12bf79429349182ddZbigniew Jędrzejewski-Szmek if (tmp != null && tmp.length == 2) {
0f85cbe105b7c4bde19fc7f12bf79429349182ddZbigniew Jędrzejewski-Szmek if (tmp != null && tmp.length == 2) {
9b9b3d36b8ffe5b41c1455bffd44a9d11efc8aeeMaciej Wereski rpath2 = new File(srcRoot+URLDecoder.decode(tmp[0], "UTF-8"));
9b9b3d36b8ffe5b41c1455bffd44a9d11efc8aeeMaciej Wereski r2 = URLDecoder.decode(tmp[1], "UTF-8");
9b9b3d36b8ffe5b41c1455bffd44a9d11efc8aeeMaciej Wereski }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } catch (UnsupportedEncodingException e) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if (r1 == null || r2 == null || r1.equals("") || r2.equals("") || r1.equals(r2)) {
54c31a79f72ff57ac8eba089acacc4ab482b745dLennart Poettering%><div class="src"><h3 class="error">Error:</h3>
54c31a79f72ff57ac8eba089acacc4ab482b745dLennart Poettering Please pick two revisions to compare the changed from the <a href="<%=context%>/history<%=path%>">history</a>
7b870f607bcb8f445d4d29a776d12d9de3bf1487Jan Engelhardt</div><%
54c31a79f72ff57ac8eba089acacc4ab482b745dLennart Poettering// Error message ask to choose two versions from History log page with link to it
d2bbca6855b174fb7ea90b4767a886bb88bd2400Ville Skyttä } else {
7b870f607bcb8f445d4d29a776d12d9de3bf1487Jan Engelhardt Genre g = AnalyzerGuru.getGenre(basename);
033a842c36e7629f81d05d12a4ed8c298ad4d3f2Zbigniew Jędrzejewski-Szmek if (g == Genre.PLAIN || g == null || g == Genre.DATA || g == Genre.HTML) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek InputStream in1 = null;
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek InputStream in2 = null;
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek try{
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek in1 = HistoryGuru.getInstance().getRevision(rpath1.getParent(), rpath1.getName(), r1);
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek in2 = HistoryGuru.getInstance().getRevision(rpath2.getParent(), rpath2.getName(), r2);
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } catch (Exception e) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %> <h3 class="error">Error opening revisions!</h3> <%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
a5e4972c8956cecf35fa4780e1cfe7c378bfcba1Lennart Poettering try {
a5e4972c8956cecf35fa4780e1cfe7c378bfcba1Lennart Poettering if (in1 != null && in2 != null) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek g = AnalyzerGuru.getGenre(basename);
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if (g == null) {
a5e4972c8956cecf35fa4780e1cfe7c378bfcba1Lennart Poettering g = AnalyzerGuru.getGenre(in1);
a5e4972c8956cecf35fa4780e1cfe7c378bfcba1Lennart Poettering }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if (g == Genre.IMAGE) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %> <div id="difftable">
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek <table rules="cols" cellpadding="5"><tr><th><%=basename%> (revision <%=r1%>)</th><th><%=basename%> (revision <%=r2%>)</th></tr>
1238ee09b7babb175b9bf7ad1d0e8eb2a414ee6eLennart Poettering <tr><td><img src="<%=context%>/raw<%=path%>?r=<%=r1%>"/></td><td><img src="<%=context%>/raw<%=path%>?r=<%=r2%>"/></td></tr></table></div><%
1238ee09b7babb175b9bf7ad1d0e8eb2a414ee6eLennart Poettering } else if (g == Genre.PLAIN || g == Genre.HTML) {
1238ee09b7babb175b9bf7ad1d0e8eb2a414ee6eLennart Poettering//--------Do THE DIFFS------------
1238ee09b7babb175b9bf7ad1d0e8eb2a414ee6eLennart Poettering ArrayList l1 = new ArrayList();
1238ee09b7babb175b9bf7ad1d0e8eb2a414ee6eLennart Poettering String line;
1238ee09b7babb175b9bf7ad1d0e8eb2a414ee6eLennart Poettering BufferedReader reader1 = new BufferedReader(new InputStreamReader(in1));
1238ee09b7babb175b9bf7ad1d0e8eb2a414ee6eLennart Poettering BufferedReader reader2 = new BufferedReader(new InputStreamReader(in2));
1238ee09b7babb175b9bf7ad1d0e8eb2a414ee6eLennart Poettering
1238ee09b7babb175b9bf7ad1d0e8eb2a414ee6eLennart Poettering while ((line = reader1.readLine()) != null) {
1238ee09b7babb175b9bf7ad1d0e8eb2a414ee6eLennart Poettering l1.add(line);
1238ee09b7babb175b9bf7ad1d0e8eb2a414ee6eLennart Poettering }
1238ee09b7babb175b9bf7ad1d0e8eb2a414ee6eLennart Poettering
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek ArrayList l2 = new ArrayList();
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek while ((line = reader2.readLine()) != null) {
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek l2.add(line);
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek }
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek Object[] file1 = l1.toArray();
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek Object[] file2 = l2.toArray();
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek Revision rev = Diff.diff(file1, file2);
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek if(rev.size() == 0) {
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek %><b>No differences found!</b><%
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek } else {
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek int ln1 = 0;
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek int ln2 = 0;
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek String format = request.getParameter("format");
4a77ca700d1841c2b8a86ed5b7f3495db61c236dAndrey Borzenkov if(format == null || (!format.equals("o") && !format.equals("n") && !format.equals("u") && !format.equals("t")))
4a77ca700d1841c2b8a86ed5b7f3495db61c236dAndrey Borzenkov format = "s";
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek String pfull = request.getParameter("full");
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek boolean full = pfull != null && pfull.equals("1");
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek pfull = full ? "1" : "0";
afba41995de65d8f378b138ea6d9804be32625a3Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
98a6e132b5b85999f7e3dce158e826ffeecc1553Daniel Albers%><div id="difftable"><div id="diffbar"><span class="tabsel">&nbsp;<span class="d"> Deleted </span>&nbsp;<span class="a">&nbsp;Added&nbsp;</span>&nbsp;</span> | <%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmekif(format.equals("s")) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><span class="tabsel"><b>sdiff</b></span> <%
69d918b0928eaa4ce9584f4c31552b048d551f0dZbigniew Jędrzejewski-Szmek} else {
69d918b0928eaa4ce9584f4c31552b048d551f0dZbigniew Jędrzejewski-Szmek %><span class="tab"><a href="<%=reqURI%>?r1=<%=rp1%>&r2=<%=rp2%>&format=s&full=<%=pfull%>">sdiff</a></span> <%
69d918b0928eaa4ce9584f4c31552b048d551f0dZbigniew Jędrzejewski-Szmek}
69d918b0928eaa4ce9584f4c31552b048d551f0dZbigniew Jędrzejewski-Szmek
69d918b0928eaa4ce9584f4c31552b048d551f0dZbigniew Jędrzejewski-Szmek if(format.equals("u")) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><span class="tabsel"><b>udiff</b></span> <%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } else {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><span class="tab"><a href="<%=reqURI%>?r1=<%=rp1%>&r2=<%=rp2%>&format=u&full=<%=pfull%>">udiff</a></span> <%
991f2a3932e831ccac609ba88f6e725b6c01acfeZbigniew Jędrzejewski-Szmek }
991f2a3932e831ccac609ba88f6e725b6c01acfeZbigniew Jędrzejewski-Szmek
991f2a3932e831ccac609ba88f6e725b6c01acfeZbigniew Jędrzejewski-Szmek if(format.equals("t")) {
991f2a3932e831ccac609ba88f6e725b6c01acfeZbigniew Jędrzejewski-Szmek %><span class="tabsel"><b>text</b></span> <%
991f2a3932e831ccac609ba88f6e725b6c01acfeZbigniew Jędrzejewski-Szmek } else {
991f2a3932e831ccac609ba88f6e725b6c01acfeZbigniew Jędrzejewski-Szmek %><span class="tab"><a href="<%=reqURI%>?r1=<%=rp1%>&r2=<%=rp2%>&format=t&full=<%=pfull%>">text</a></span> <%
991f2a3932e831ccac609ba88f6e725b6c01acfeZbigniew Jędrzejewski-Szmek }
991f2a3932e831ccac609ba88f6e725b6c01acfeZbigniew Jędrzejewski-Szmek
23ade460e5a118daa575a961b405d089f95e0617Michal Schmidt if(format.equals("o")) {
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering %><span class="tabsel"><b>old (<%=r1%>)</b></span> <%
23ade460e5a118daa575a961b405d089f95e0617Michal Schmidt } else {
23ade460e5a118daa575a961b405d089f95e0617Michal Schmidt %><span class="tab"><a href="<%=reqURI%>?r1=<%=rp1%>&r2=<%=rp2%>&format=o&full=<%=pfull%>">old (<%=r1%>)</a></span> <%
e0e009c067aa7237f9683c46e5845bbb11ec67c2Jan Engelhardt }
e0e009c067aa7237f9683c46e5845bbb11ec67c2Jan Engelhardt
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering if(format.equals("n")) {
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering %><span class="tabsel"><b>new (<%=r2%>)</b></span>&nbsp;|&nbsp;<%
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering } else {
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering %><span class="tab"><a href="<%=reqURI%>?r1=<%=rp1%>&r2=<%=rp2%>&format=n&full=<%=pfull%>">new (<%=r2%>)</a></span>&nbsp;|&nbsp;<%
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering }
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering if(!full) {
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering %><span class="tab"><a href="<%=reqURI%>?r1=<%=rp1%>&r2=<%=rp2%>&format=<%=format%>&full=1">&nbsp; &nbsp; full &nbsp; &nbsp;</a></span> <span class="tabsel"><b>compact</b></span><%
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering } else {
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering %><span class="tabsel"><b>&nbsp; &nbsp; full &nbsp; &nbsp;</b> </span> <span class="tab"> <a href="<%=reqURI%>?r1=<%=rp1%>&r2=<%=rp2%>&format=<%=format%>&full=0">compact</a></span><%
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering }
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering if(format.equals("s") || format.equals("u")) {
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering %></div><pre wrap><table cellpadding="2" cellspacing="1" border="0" rules="cols"><%
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering if(format.equals("s")) {
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering %><tr><th><%=basename%> (<%=r1%>)</th><th><%=basename%> (<%=r2%>)</th></tr><%
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering }
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering } else {
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering %></div><pre wrap><%
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering }
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering for (int i=0; i < rev.size(); i++) {
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering Delta d = rev.getDelta(i);
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering if(format.equals("t")) {
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering %><%=Util.htmlize(d.toString())%><%
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering } else {
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering Chunk c1 = d.getOriginal();
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering Chunk c2 = d.getRevised();
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering int cn1 = c1.first();
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering int cl1 = c1.last();
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering int cn2 = c2.first();
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering int cl2 = c2.last();
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering int i1 = cn1, i2 = cn2;
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering for (; i1 <= cl1 && i2 <= cl2; i1++, i2++) {
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering String[] ss = diffline(Util.htmlize((String)file1[i1]), Util.htmlize((String)file2[i2]));
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering file1[i1] = ss[0];
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering file2[i2] = ss[1];
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering }
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering if(i1 <= cl1) {
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering for(int h=i1; h<= cl1; h++) {
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering file1[h] = Util.htmlize((String)file1[h]);
b040723ea412209e0edf54647fa5aa4287411507Jan Engelhardt }
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering file1[i1] = "<span class=\"d\">" + file1[i1];
4dc5b821ae737914499119e29811fc3346e3d97cLennart Poettering file1[cl1] = file1[cl1] + "</span>";
23ade460e5a118daa575a961b405d089f95e0617Michal Schmidt }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if(i2 <= cl2) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for(int h=i2; h<= cl2; h++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek file2[h] = Util.htmlize((String)file2[h]);
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek file2[i2] = "<span class=\"a\">" + file2[i2];
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek file2[cl2] = file2[cl2] + "</span>";
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if (format.equals("u")) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek// UDIFF
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if (cn1 > ln1 || cn2 > ln2) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><tr class="k"><td><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if (full || (cn2 - ln2 < 20)) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for (int j = ln2; j < cn2; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(++ln2)%></i><%=Util.htmlize((String)file2[j])%><br/><%
494a66821815e8109afa136bd42818b85da38c09Jan Engelhardt }
7b870f607bcb8f445d4d29a776d12d9de3bf1487Jan Engelhardt } else {
7b870f607bcb8f445d4d29a776d12d9de3bf1487Jan Engelhardt for (int j = ln2; j < ln2+8; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(j+1)%></i><%=Util.htmlize((String)file2[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><br/>--- <b><%=cn2 - ln2 - 16%> unchanged lines hidden</b> (<a href="<%=reqURI%>?r1=<%=rp1%>&r2=<%=rp2%>&format=<%=format%>&full=1#<%=ln2%>">view full</a>) --- <br/><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek ln2 = cn2-8;
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for (int j = cn2 - 8; j < cn2; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(++ln2)%></i><%=Util.htmlize((String)file2[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %></td></tr><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek ln1 = cn1;
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if(cn1 <= cl1) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><tr><td class="d"><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for(int j = cn1; j <= cl1 ; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><strike class="d"><%=readableLine(++ln1)%></strike><%=file1[j]%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %></td></tr><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if(cn2 <= cl2) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><tr class="k"><td><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for(int j = cn2; j < cl2; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i class="a"><%=readableLine(++ln2)%></i><%=file2[j]%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i class="a"><%=readableLine(++ln2)%></i><%=file2[cl2]%><%
7b870f607bcb8f445d4d29a776d12d9de3bf1487Jan Engelhardt if(full) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><a name="<%=ln2%>" /><%
7b870f607bcb8f445d4d29a776d12d9de3bf1487Jan Engelhardt }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %></td></tr><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek// SDIFF by default
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } else if(format.equals("s")) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if (cn1 > ln1 || cn2 > ln2) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><tr class="k"><td><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if(full || cn2 - ln2 < 20) {
841aa8c0b484b96654b95d3c4e936e37da4c7ddaZbigniew Jędrzejewski-Szmek for(int j = ln1; j < cn1; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(++ln1)%></i><%=Util.htmlize((String)file1[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %></td><td><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for(int j = ln2; j < cn2 ; j++) {
88ae7333ee052e64607ae6678fe0e84991fe3482Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(++ln2)%></i><%=Util.htmlize((String)file2[j])%><br/><%
88ae7333ee052e64607ae6678fe0e84991fe3482Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } else {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for(int j = ln1; j < ln1+8; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(j+1)%></i><%=Util.htmlize((String)file1[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><br/>--- <b><%=cn1 - ln1 - 16%> unchanged lines hidden</b> (<a href="<%=reqURI%>?r1=<%=rp1%>&r2=<%=rp2%>&format=<%=format%>&full=1#<%=ln2%>">view full</a>) --- <br/><br/><%
7b870f607bcb8f445d4d29a776d12d9de3bf1487Jan Engelhardt ln1 = cn1-8;
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for (int j = cn1 - 8; j < cn1; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(++ln1)%></i><%=Util.htmlize((String)file1[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %></td><td><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for (int j = ln2; j < ln2+8; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(j+1)%></i><%=Util.htmlize((String)file2[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><br/>--- <b><%=cn2 - ln2 - 16%> unchanged lines hidden</b> (<a href="<%=reqURI%>?r1=<%=rp1%>&r2=<%=rp2%>&format=<%=format%>&full=1#<%=ln2%>">view full</a>) --- <br/><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek ln2 = cn2-8;
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for (int j = cn2 - 8; j < cn2; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(++ln2)%></i><%=Util.htmlize((String)file2[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %></td></tr><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><tr valign="top" class="k"><td><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for(int j = cn1; j <= cl1; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(++ln1)%></i><%=file1[j]%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %></td><td><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for(int j = cn2; j <= cl2; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(++ln2)%></i><a name="<%=ln2%>"></a><%=file2[j]%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %></td></tr><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek// OLD -----
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } else if ( format.equals("o")) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if (cn1 > ln1) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if(full || cn1 - ln1 < 20) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for(int j = ln1; j < cn1; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(++ln1)%></i><%=Util.htmlize((String)file1[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } else {
7b870f607bcb8f445d4d29a776d12d9de3bf1487Jan Engelhardt for(int j = ln1; j < ln1+8; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(j+1)%></i><%=Util.htmlize((String)file1[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
7b870f607bcb8f445d4d29a776d12d9de3bf1487Jan Engelhardt %><br/>--- <b><%=cn1 - ln1 - 16%> unchanged lines hidden</b> (<a href="<%=reqURI%>?r1=<%=rp1%>&r2=<%=rp2%>&format=<%=format%>&full=1#<%=ln1%>">view full</a>) --- <br/><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek ln1 = cn1-8;
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for (int j = cn1 - 8; j < cn1; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(++ln1)%></i><%=Util.htmlize((String)file1[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for(int j = cn1; j <= cl1 ; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(++ln1)%></i><%=file1[j]%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if(full) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><a name="<%=ln1%>" ></a><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek// NEW -----------
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } else if ( format.equals("n")) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
7b870f607bcb8f445d4d29a776d12d9de3bf1487Jan Engelhardt if (cn2 > ln2) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if(full || cn2 - ln2 < 20) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for(int j = ln2; j < cn2 ; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(++ln2)%></i><%=Util.htmlize((String)file2[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } else {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for (int j = ln2; j < ln2+8; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(j+1)%></i><%=Util.htmlize((String)file2[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><br/>--- <b><%=cn2 - ln2 - 16%> unchanged lines hidden</b> (<a href="<%=reqURI%>?r1=<%=rp1%>&r2=<%=rp2%>&format=<%=format%>&full=1#<%=ln2%>">view full</a>) --- <br/><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek ln2 = cn2-8;
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for (int j = cn2 - 8; j < cn2; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(++ln2)%></i><%=Util.htmlize((String)file2[j])%><br/><%
05cc726731c5cec952722f1c14acb08e3d4d5e98Zbigniew Jędrzejewski-Szmek }
7b870f607bcb8f445d4d29a776d12d9de3bf1487Jan Engelhardt }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for(int j = cn2; j <= cl2 ; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=readableLine(++ln2)%></i><%=file2[j]%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if(full) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><a name="<%=ln2%>"></a><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if (file1.length >= ln1) {
7b870f607bcb8f445d4d29a776d12d9de3bf1487Jan Engelhardt// dump the remaining
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if (format.equals("s")) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if (full || file1.length - ln1 < 20) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><tr><td><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for (int j = ln1; j < file1.length ; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=(j+1)%></i><%=Util.htmlize((String)file1[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %></td><td><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for (int j = ln2; j < file2.length ; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=(j+1)%></i><%=Util.htmlize((String)file2[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %></td></tr></table><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } else {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><tr><td><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for (int j = ln1; j < ln1 + 8 ; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=(j+1)%></i><%=Util.htmlize((String)file1[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><br/> --- <b><%=file1.length - ln1 - 8%> unchanged lines hidden</b> --- </td><td><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for (int j = ln2; j < ln2 + 8 ; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=(j+1)%></i><%=Util.htmlize((String)file2[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><br/>--- <b><%=file1.length - ln1 - 8%> unchanged lines hidden</b> ---</td></tr></table><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } else if (format.equals("u")) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek if (full || file2.length - ln2 < 20) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><tr><td><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for (int j = ln2; j < file2.length ; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=(j+1)%></i><%=Util.htmlize((String)file2[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
a330b376bac697ecf13cada5f96070a318ab9ab9Lennart Poettering %></td></tr></table><%
171754aa4ae37a6ab626878256f7b664da78ef55Zbigniew Jędrzejewski-Szmek } else {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><tr><td><%
a330b376bac697ecf13cada5f96070a318ab9ab9Lennart Poettering for (int j = ln2; j < ln2 + 8 ; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=(j+1)%></i><%=Util.htmlize((String)file2[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><br/>--- <b><%=file2.length - ln2 - 8%> unchanged lines hidden</b> ---</td></tr></table><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
a330b376bac697ecf13cada5f96070a318ab9ab9Lennart Poettering } else if (format.equals("o")) {
494a66821815e8109afa136bd42818b85da38c09Jan Engelhardt if (full || file1.length - ln1 < 20) {
fbce11397f4d19821a9dfe66ee3ebe11cad90057Jan Engelhardt for (int j = ln1; j < file1.length ; j++) {
a330b376bac697ecf13cada5f96070a318ab9ab9Lennart Poettering %><i><%=(j+1)%></i><%=Util.htmlize((String)file1[j])%><br/><%
a330b376bac697ecf13cada5f96070a318ab9ab9Lennart Poettering }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } else {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for (int j = ln1; j < ln1 + 8 ; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=(j+1)%></i><%=Util.htmlize((String)file1[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><br/> --- <b><%=file1.length - ln1 - 8%> unchanged lines hidden</b> ---<br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } else if (format.equals("n")) {
7b870f607bcb8f445d4d29a776d12d9de3bf1487Jan Engelhardt if (full || file2.length - ln2 < 20) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for (int j = ln2; j < file2.length ; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=(j+1)%></i><%=Util.htmlize((String)file2[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } else {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek for (int j = ln2; j < ln2 + 8 ; j++) {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><i><%=(j+1)%></i><%=Util.htmlize((String)file2[j])%><br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %><br/> --- <b><%=file2.length - ln2 - 8%> unchanged lines hidden</b> ---<br/><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
7b870f607bcb8f445d4d29a776d12d9de3bf1487Jan Engelhardt }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek
7b870f607bcb8f445d4d29a776d12d9de3bf1487Jan Engelhardt//----DIFFS Done--------
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek%></pre></div><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } else {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %> <div id="src">Diffs for binary files cannot be displayed! Files are <a href="<%=context%>/raw<%=path%>?r=<%=r1%>"><%=basename%>(revision <%=r1%>)</a> and
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek <a href="<%=context%>/raw<%=path%>?r=<%=r2%>"><%=basename%>(revision <%=r2%>)</a>.
5d0c05e5f417325e8505dde857a93a88eb7ebdc0Lukas Nykryn </div><%
5d0c05e5f417325e8505dde857a93a88eb7ebdc0Lukas Nykryn }
5d0c05e5f417325e8505dde857a93a88eb7ebdc0Lukas Nykryn }
5d0c05e5f417325e8505dde857a93a88eb7ebdc0Lukas Nykryn } catch (FileNotFoundException e) {
7b870f607bcb8f445d4d29a776d12d9de3bf1487Jan Engelhardt %><div class="src"><h3 class="error">Error Opening files! <%=Util.htmlize(e.getMessage())%></h3></div><%
5d0c05e5f417325e8505dde857a93a88eb7ebdc0Lukas Nykryn }
5d0c05e5f417325e8505dde857a93a88eb7ebdc0Lukas Nykryn if(in1 != null)
5d0c05e5f417325e8505dde857a93a88eb7ebdc0Lukas Nykryn in1.close();
5d0c05e5f417325e8505dde857a93a88eb7ebdc0Lukas Nykryn if(in2 != null)
4f50d2efbac87aba0505b9f998bf3e4bde64c214Zbigniew Jędrzejewski-Szmek in2.close();
4f50d2efbac87aba0505b9f998bf3e4bde64c214Zbigniew Jędrzejewski-Szmek } else if (g == Genre.IMAGE) {
4f50d2efbac87aba0505b9f998bf3e4bde64c214Zbigniew Jędrzejewski-Szmek %> <div class="src">
dfdebb1b925332352966804303b2516a6506a429Zbigniew Jędrzejewski-Szmek <table rules="cols" cellpadding="5"><tr><th><%=basename%> (revision <%=r1%>)</th><th><%=basename%> (revision <%=r2%>)</th></tr>
dfdebb1b925332352966804303b2516a6506a429Zbigniew Jędrzejewski-Szmek <tr><td><img src="<%=context%>/raw<%=path%>?r=<%=r1%>"/></td><td><img src="<%=context%>/raw<%=path%>?r=<%=r2%>"/></td></tr></table></div><%
dfdebb1b925332352966804303b2516a6506a429Zbigniew Jędrzejewski-Szmek
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek } else {
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek %> <div class="src">Diffs for binary files cannot be displayed. Files are <a href="<%=context%>/raw<%=path%>?r=<%=r1%>"><%=basename%>(revision <%=r1%>)</a> and
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek <a href="<%=context%>/raw<%=path%>?r=<%=r2%>"><%=basename%>(revision <%=r2%>)</a>.
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek </div><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek }
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek%><%@include file="foot.jspf"%><%
4a6022f01cfe092d018db52186d6af1fe28f3421Zbigniew Jędrzejewski-Szmek}
27722f964361a7da2532cf0a2d57a2f0dd0a09f2Lukas Nykryn%>
27722f964361a7da2532cf0a2d57a2f0dd0a09f2Lukas Nykryn