Prepare RawText for diff-index and diff-files
Bug: 291083 Eclipse-CQ: 3559 Change-Id: Ia02f346a96b5f1e24f8bc9676bd428b968a41222 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
1a03c864a6
commit
e34865b88b
|
@ -44,6 +44,8 @@
|
||||||
|
|
||||||
package org.eclipse.jgit.diff;
|
package org.eclipse.jgit.diff;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
|
||||||
|
@ -87,6 +89,18 @@ public RawText(final byte[] input) {
|
||||||
hashes = computeHashes();
|
hashes = computeHashes();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new sequence from a file.
|
||||||
|
* <p>
|
||||||
|
* The entire file contents are used.
|
||||||
|
*
|
||||||
|
* @param file
|
||||||
|
* the text file.
|
||||||
|
*/
|
||||||
|
public RawText(File file) throws IOException {
|
||||||
|
this(readFile(file));
|
||||||
|
}
|
||||||
|
|
||||||
public int size() {
|
public int size() {
|
||||||
// The line map is always 2 entries larger than the number of lines in
|
// The line map is always 2 entries larger than the number of lines in
|
||||||
// the file. Index 0 is padded out/unused. The last index is the total
|
// the file. Index 0 is padded out/unused. The last index is the total
|
||||||
|
@ -187,4 +201,16 @@ protected int hashLine(final byte[] raw, int ptr, final int end) {
|
||||||
hash = (hash << 5) ^ (raw[ptr] & 0xff);
|
hash = (hash << 5) ^ (raw[ptr] & 0xff);
|
||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
private static byte[] readFile(File file) throws IOException {
|
||||||
|
byte[] result = new byte[(int)file.length()];
|
||||||
|
FileInputStream in = new FileInputStream(file);
|
||||||
|
for (int off = 0; off < result.length; ) {
|
||||||
|
int read = in.read(result, off, result.length - off);
|
||||||
|
if (read < 0)
|
||||||
|
throw new IOException("Early EOF");
|
||||||
|
off += read;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue