about summary refs log tree commit diff
path: root/shared.c
diff options
context:
space:
mode:
authorChristian Hesse <mail@eworm.de>2016-09-04 12:38:18 +0200
committerChristian Hesse <mail@eworm.de>2016-09-04 12:38:18 +0200
commit11695a58fd732689be486edf88d145578a787c89 (patch)
treeab397b8346d89a01ecc1d99350e81f1bd7cbe7a4 /shared.c
parentFix qry.head leak on error (diff)
downloadcgit-pink-11695a58fd732689be486edf88d145578a787c89.tar.gz
cgit-pink-11695a58fd732689be486edf88d145578a787c89.zip
git: update to v2.10.0
Upstream continues to replace unsigned char *sha1 with struct
object_id old_oid. This makes the required changes.

The git lib has its own main function now. Rename our main function
to cmd_main, it is called from main then.
Diffstat (limited to 'shared.c')
-rw-r--r--shared.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/shared.c b/shared.c
index a63633b..a48eea6 100644
--- a/shared.c
+++ b/shared.c
@@ -263,15 +263,15 @@ void cgit_diff_tree_cb(struct diff_queue_struct *q,
 	}
 }
 
-static int load_mmfile(mmfile_t *file, const unsigned char *sha1)
+static int load_mmfile(mmfile_t *file, const struct object_id *oid)
 {
 	enum object_type type;
 
-	if (is_null_sha1(sha1)) {
+	if (is_null_oid(oid)) {
 		file->ptr = (char *)"";
 		file->size = 0;
 	} else {
-		file->ptr = read_sha1_file(sha1, &type,
+		file->ptr = read_sha1_file(oid->hash, &type,
 		                           (unsigned long *)&file->size);
 	}
 	return 1;
@@ -322,8 +322,8 @@ static int filediff_cb(void *priv, mmbuffer_t *mb, int nbuf)
 	return 0;
 }
 
-int cgit_diff_files(const unsigned char *old_sha1,
-		    const unsigned char *new_sha1, unsigned long *old_size,
+int cgit_diff_files(const struct object_id *old_oid,
+		    const struct object_id *new_oid, unsigned long *old_size,
 		    unsigned long *new_size, int *binary, int context,
 		    int ignorews, linediff_fn fn)
 {
@@ -332,7 +332,7 @@ int cgit_diff_files(const unsigned char *old_sha1,
 	xdemitconf_t emit_params;
 	xdemitcb_t emit_cb;
 
-	if (!load_mmfile(&file1, old_sha1) || !load_mmfile(&file2, new_sha1))
+	if (!load_mmfile(&file1, old_oid) || !load_mmfile(&file2, new_oid))
 		return 1;
 
 	*old_size = file1.size;
@@ -366,8 +366,8 @@ int cgit_diff_files(const unsigned char *old_sha1,
 	return 0;
 }
 
-void cgit_diff_tree(const unsigned char *old_sha1,
-		    const unsigned char *new_sha1,
+void cgit_diff_tree(const struct object_id *old_oid,
+		    const struct object_id *new_oid,
 		    filepair_fn fn, const char *prefix, int ignorews)
 {
 	struct diff_options opt;
@@ -391,21 +391,21 @@ void cgit_diff_tree(const unsigned char *old_sha1,
 	}
 	diff_setup_done(&opt);
 
-	if (old_sha1 && !is_null_sha1(old_sha1))
-		diff_tree_sha1(old_sha1, new_sha1, "", &opt);
+	if (old_oid && !is_null_oid(old_oid))
+		diff_tree_sha1(old_oid->hash, new_oid->hash, "", &opt);
 	else
-		diff_root_tree_sha1(new_sha1, "", &opt);
+		diff_root_tree_sha1(new_oid->hash, "", &opt);
 	diffcore_std(&opt);
 	diff_flush(&opt);
 }
 
 void cgit_diff_commit(struct commit *commit, filepair_fn fn, const char *prefix)
 {
-	unsigned char *old_sha1 = NULL;
+	const struct object_id *old_oid = NULL;
 
 	if (commit->parents)
-		old_sha1 = commit->parents->item->object.oid.hash;
-	cgit_diff_tree(old_sha1, commit->object.oid.hash, fn, prefix,
+		old_oid = &commit->parents->item->object.oid;
+	cgit_diff_tree(old_oid, &commit->object.oid, fn, prefix,
 		       ctx.qry.ignorews);
 }