diff --git a/index.html b/index.html
index b3171319ac..a9cc5f3f37 100644
--- a/index.html
+++ b/index.html
@@ -227,10 +227,14 @@
body().removeEventListener("keydown", framesOnKeyDown);
body().style.margin = 0;
if (state.view !== "index") {
- if (state.head.content[state.index] === null || state.base.content[state.index] === null) {
- const content = fetchFileContent(state);
- state.head.content[state.index] = content.head;
- state.base.content[state.index] = content.base;
+ if (!state.comparison.files[state.index].binary) {
+ if (state.head.content[state.index] === null || state.base.content[state.index] === null) {
+ const content = fetchFileContent(state);
+ if (content != null) {
+ state.head.content[state.index] = content.head;
+ state.base.content[state.index] = content.base;
+ }
+ }
}
}
if (state.view === "index") {
@@ -402,40 +406,50 @@
const p = create("p");
const code = create("code");
if (file.status === "modified" || file.status === "copied" || file.status === "renamed") {
- const cdiff = create("a");
- cdiff.href = "#cdiff-" + i + "-" + filename;
- cdiff.innerHTML = "Cdiffs";
- code.append(cdiff, " ");
-
- const udiff = create("a");
- udiff.href = "#udiff-" + i + "-" + filename;
- udiff.innerHTML = "Udiffs";
- code.append(udiff, " ");
-
- const sdiff = create("a");
- sdiff.href = "#sdiff-" + i + "-" + filename;
- sdiff.innerHTML = "Sdiffs";
- code.append(sdiff, " ");
-
- const frames = create("a");
- frames.href = "#frames-" + i + "-" + filename;
- frames.innerHTML = "Frames";
- code.append(frames, " ");
-
- const oldFile = create("a");
- oldFile.href = "#old-" + i + "-" + filename;
- oldFile.innerHTML = "Old";
- code.append(oldFile, " ");
-
- const newFile = create("a");
- newFile.href = "#new-" + i + "-" + filename;
- newFile.innerHTML = "New";
- code.append(newFile, " ");
-
- const patchFile = create("a");
- patchFile.href = "#patch-" + i + "-" + filename;
- patchFile.innerHTML = "Patch";
- code.append(patchFile, " ");
+ if (file.binary) {
+ code.append("------ ");
+ code.append("------ ");
+ code.append("------ ");
+ code.append("------ ");
+ code.append("--- ");
+ code.append("--- ");
+ code.append("----- ");
+ } else {
+ const cdiff = create("a");
+ cdiff.href = "#cdiff-" + i + "-" + filename;
+ cdiff.innerHTML = "Cdiffs";
+ code.append(cdiff, " ");
+
+ const udiff = create("a");
+ udiff.href = "#udiff-" + i + "-" + filename;
+ udiff.innerHTML = "Udiffs";
+ code.append(udiff, " ");
+
+ const sdiff = create("a");
+ sdiff.href = "#sdiff-" + i + "-" + filename;
+ sdiff.innerHTML = "Sdiffs";
+ code.append(sdiff, " ");
+
+ const frames = create("a");
+ frames.href = "#frames-" + i + "-" + filename;
+ frames.innerHTML = "Frames";
+ code.append(frames, " ");
+
+ const oldFile = create("a");
+ oldFile.href = "#old-" + i + "-" + filename;
+ oldFile.innerHTML = "Old";
+ code.append(oldFile, " ");
+
+ const newFile = create("a");
+ newFile.href = "#new-" + i + "-" + filename;
+ newFile.innerHTML = "New";
+ code.append(newFile, " ");
+
+ const patchFile = create("a");
+ patchFile.href = "#patch-" + i + "-" + filename;
+ patchFile.innerHTML = "Patch";
+ code.append(patchFile, " ");
+ }
const rawFile = create("a");
rawFile.href = "https://raw.githubusercontent.com/" + metadata.head.repo.full_name + "/" + metadata.head.sha + "/" + file.filename;
@@ -461,15 +475,20 @@
code.append("------ ");
code.append("--- ");
- const newFile = create("a");
- newFile.href = "#new-" + i + "-" + filename;
- newFile.innerHTML = "New";
- code.append(newFile, " ");
-
- const patchFile = create("a");
- patchFile.href = "#patch-" + i + "-" + filename;
- patchFile.innerHTML = "Patch";
- code.append(patchFile, " ");
+ if (file.binary) {
+ code.append("--- ");
+ code.append("----- ");
+ } else {
+ const newFile = create("a");
+ newFile.href = "#new-" + i + "-" + filename;
+ newFile.innerHTML = "New";
+ code.append(newFile, " ");
+
+ const patchFile = create("a");
+ patchFile.href = "#patch-" + i + "-" + filename;
+ patchFile.innerHTML = "Patch";
+ code.append(patchFile, " ");
+ }
const rawFile = create("a");
rawFile.href = "https://raw.githubusercontent.com/" + metadata.head.repo.full_name + "/" + metadata.head.sha + "/" + file.filename;
@@ -489,19 +508,26 @@
code.append("------ ");
code.append("------ ");
- const oldFile = create("a");
- oldFile.href = "#old-" + i + "-" + filename;
- oldFile.innerHTML = "Old";
- code.append(oldFile, " ");
-
- code.append("--- ");
-
- const patchFile = create("a");
- patchFile.href = "#patch-" + i + "-" + filename;
- patchFile.innerHTML = "Patch";
- code.append(patchFile, " ");
-
- code.append("--- ");
+ if (file.binary) {
+ code.append("--- ");
+ code.append("--- ");
+ code.append("----- ");
+ code.append("--- ");
+ } else {
+ const oldFile = create("a");
+ oldFile.href = "#old-" + i + "-" + filename;
+ oldFile.innerHTML = "Old";
+ code.append(oldFile, " ");
+
+ code.append("--- ");
+
+ const patchFile = create("a");
+ patchFile.href = "#patch-" + i + "-" + filename;
+ patchFile.innerHTML = "Patch";
+ code.append(patchFile, " ");
+
+ code.append("--- ");
+ }
p.append(code);
@@ -1477,6 +1503,10 @@
function removeContext(patch) {
const hunks = new Array();
+ if (patch === null) {
+ return hunks
+ }
+
let srcStart = 0;
let srcLines = new Array();
let dstStart = 0;
@@ -1677,10 +1707,14 @@
// Pre-fetch base and head content for up to 25 files
for (let i = 0; i < Math.min(files.length, 25); i++) {
- state.index = i;
- const content = fetchFileContent(state);
- state.head.content[i] = content.head;
- state.base.content[i] = content.base;
+ if (!state.comparison.files[i].binary) {
+ state.index = i;
+ const content = fetchFileContent(state);
+ if (content != null) {
+ state.head.content[i] = content.head;
+ state.base.content[i] = content.base;
+ }
+ }
}
state.index = -1;
}