X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/a342ac6b4d7830f82230b0f6a29bc9378d66747e..f9ff7df613b4ee86fe5914c4ae3400650882c03d:/ui-diff.c
diff --git a/ui-diff.c b/ui-diff.c
index 7ec5701..afe1c90 100644
--- a/ui-diff.c
+++ b/ui-diff.c
@@ -35,7 +35,10 @@ static void header(unsigned char *sha1, char *path1,
unsigned char *sha2, char *path2)
{
char *abbrev1, *abbrev2;
-
+ if (is_null_sha1(sha1))
+ path1 = "dev/null";
+ if (is_null_sha1(sha2))
+ path2 = "dev/null";
html("
| ");
html(" ");
html("diff --git a/");
@@ -63,11 +66,23 @@ static void filepair_cb(struct diff_filepair *pair)
html(" |
");
}
-void cgit_print_diff(const char *old_hex, const char *new_hex, char *path)
+void cgit_print_diff(const char *head, const char *old_hex, const char *new_hex, char *path)
{
unsigned char sha1[20], sha2[20];
enum object_type type;
unsigned long size;
+ struct commit *commit;
+
+ if (head && !old_hex && !new_hex) {
+ get_sha1(head, sha1);
+ commit = lookup_commit_reference(sha1);
+ if (commit && !parse_commit(commit)) {
+ html("");
+ cgit_diff_commit(commit, filepair_cb);
+ html("
");
+ }
+ return;
+ }
get_sha1(old_hex, sha1);
get_sha1(new_hex, sha2);