From 3df3496185d229e6f1cdeb6f182f7933884ca29c Mon Sep 17 00:00:00 2001 From: James Moger Date: Wed, 20 Apr 2011 22:14:37 -0400 Subject: Selectable diff presentation: gitblit, gitweb, or plain. --- src/com/gitblit/utils/HtmlDiffFormatter.java | 131 --------------------------- 1 file changed, 131 deletions(-) delete mode 100644 src/com/gitblit/utils/HtmlDiffFormatter.java (limited to 'src/com/gitblit/utils/HtmlDiffFormatter.java') diff --git a/src/com/gitblit/utils/HtmlDiffFormatter.java b/src/com/gitblit/utils/HtmlDiffFormatter.java deleted file mode 100644 index 24cdd8ac..00000000 --- a/src/com/gitblit/utils/HtmlDiffFormatter.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.gitblit.utils; - -import static org.eclipse.jgit.lib.Constants.encodeASCII; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.OutputStream; - -import org.eclipse.jgit.diff.DiffFormatter; -import org.eclipse.jgit.diff.RawText; - -public class HtmlDiffFormatter extends DiffFormatter { - - private final OutputStream os; - - public HtmlDiffFormatter(OutputStream os) { - super(os); - this.os = os; - } - - /** - * Output a hunk header - * - * @param aStartLine - * within first source - * @param aEndLine - * within first source - * @param bStartLine - * within second source - * @param bEndLine - * within second source - * @throws IOException - */ - @Override - protected void writeHunkHeader(int aStartLine, int aEndLine, int bStartLine, int bEndLine) throws IOException { - os.write("
".getBytes()); - os.write('@'); - os.write('@'); - writeRange('-', aStartLine + 1, aEndLine - aStartLine); - writeRange('+', bStartLine + 1, bEndLine - bStartLine); - os.write(' '); - os.write('@'); - os.write('@'); - os.write("
".getBytes()); - } - - private void writeRange(final char prefix, final int begin, final int cnt) throws IOException { - os.write(' '); - os.write(prefix); - switch (cnt) { - case 0: - // If the range is empty, its beginning number must - // be the - // line just before the range, or 0 if the range is - // at the - // start of the file stream. Here, begin is always 1 - // based, - // so an empty file would produce "0,0". - // - os.write(encodeASCII(begin - 1)); - os.write(','); - os.write('0'); - break; - - case 1: - // If the range is exactly one line, produce only - // the number. - // - os.write(encodeASCII(begin)); - break; - - default: - os.write(encodeASCII(begin)); - os.write(','); - os.write(encodeASCII(cnt)); - break; - } - } - - @Override - protected void writeLine(final char prefix, final RawText text, final int cur) throws IOException { - switch (prefix) { - case '+': - os.write("".getBytes()); - break; - case '-': - os.write("".getBytes()); - break; - } - os.write(prefix); - ByteArrayOutputStream bos = new ByteArrayOutputStream(); - text.writeLine(bos, cur); - String line = bos.toString(); - line = StringUtils.escapeForHtml(line, false); - os.write(line.getBytes()); - switch (prefix) { - case '+': - case '-': - os.write("\n".getBytes()); - break; - default: - os.write('\n'); - } - } - - /** - * Workaround function for complex private methods in DiffFormatter. This - * sets the html for the diff headers. - * - * @return - */ - public String getHtml() { - String html = os.toString(); - String[] lines = html.split("\n"); - StringBuilder sb = new StringBuilder(); - sb.append("
"); - for (String line : lines) { - if (line.startsWith("diff")) { - sb.append("
").append(line).append("
"); - } else if (line.startsWith("---")) { - sb.append("").append(line).append("
"); - } else if (line.startsWith("+++")) { - sb.append("").append(line).append("
"); - } else { - sb.append(line).append('\n'); - } - } - sb.append("
\n"); - return sb.toString(); - } -} -- cgit v1.2.3