]> git.cameronkatri.com Git - cgit.git/blobdiff - ui-blob.c
tests: add tests for xz compressed snapshots
[cgit.git] / ui-blob.c
index 761e88673ff5360e39718ee1b94c53e67a0fde1e..30e2d4bf5f5484e1a5cd3541e8531f110a1e91f0 100644 (file)
--- a/ui-blob.c
+++ b/ui-blob.c
@@ -18,7 +18,7 @@ struct walk_tree_context {
        unsigned int file_only:1;
 };
 
        unsigned int file_only:1;
 };
 
-static int walk_tree(const unsigned char *sha1, struct strbuf *base,
+static int walk_tree(const struct object_id *oid, struct strbuf *base,
                const char *pathname, unsigned mode, int stage, void *cbdata)
 {
        struct walk_tree_context *walk_tree_ctx = cbdata;
                const char *pathname, unsigned mode, int stage, void *cbdata)
 {
        struct walk_tree_context *walk_tree_ctx = cbdata;
@@ -28,7 +28,7 @@ static int walk_tree(const unsigned char *sha1, struct strbuf *base,
        if (strncmp(base->buf, walk_tree_ctx->match_path, base->len)
                || strcmp(walk_tree_ctx->match_path + base->len, pathname))
                return READ_TREE_RECURSIVE;
        if (strncmp(base->buf, walk_tree_ctx->match_path, base->len)
                || strcmp(walk_tree_ctx->match_path + base->len, pathname))
                return READ_TREE_RECURSIVE;
-       hashcpy(walk_tree_ctx->matched_oid->hash, sha1);
+       oidcpy(walk_tree_ctx->matched_oid, oid);
        walk_tree_ctx->found_path = 1;
        return 0;
 }
        walk_tree_ctx->found_path = 1;
        return 0;
 }
@@ -54,9 +54,10 @@ int cgit_ref_path_exists(const char *path, const char *ref, int file_only)
 
        if (get_oid(ref, &oid))
                goto done;
 
        if (get_oid(ref, &oid))
                goto done;
-       if (sha1_object_info(oid.hash, &size) != OBJ_COMMIT)
+       if (oid_object_info(the_repository, &oid, &size) != OBJ_COMMIT)
                goto done;
                goto done;
-       read_tree_recursive(lookup_commit_reference(&oid)->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
+       read_tree_recursive(the_repository, lookup_commit_reference(the_repository, &oid)->maybe_tree,
+               "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
 
 done:
        free(path_items.match);
 
 done:
        free(path_items.match);
@@ -87,17 +88,18 @@ int cgit_print_file(char *path, const char *head, int file_only)
 
        if (get_oid(head, &oid))
                return -1;
 
        if (get_oid(head, &oid))
                return -1;
-       type = sha1_object_info(oid.hash, &size);
+       type = oid_object_info(the_repository, &oid, &size);
        if (type == OBJ_COMMIT) {
        if (type == OBJ_COMMIT) {
-               commit = lookup_commit_reference(&oid);
-               read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
+               commit = lookup_commit_reference(the_repository, &oid);
+               read_tree_recursive(the_repository, commit->maybe_tree,
+                       "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
                if (!walk_tree_ctx.found_path)
                        return -1;
                if (!walk_tree_ctx.found_path)
                        return -1;
-               type = sha1_object_info(oid.hash, &size);
+               type = oid_object_info(the_repository, &oid, &size);
        }
        if (type == OBJ_BAD)
                return -1;
        }
        if (type == OBJ_BAD)
                return -1;
-       buf = read_sha1_file(oid.hash, &type, &size);
+       buf = read_object_file(&oid, &type, &size);
        if (!buf)
                return -1;
        buf[size] = '\0';
        if (!buf)
                return -1;
        buf[size] = '\0';
@@ -142,12 +144,13 @@ void cgit_print_blob(const char *hex, char *path, const char *head, int file_onl
                }
        }
 
                }
        }
 
-       type = sha1_object_info(oid.hash, &size);
+       type = oid_object_info(the_repository, &oid, &size);
 
        if ((!hex) && type == OBJ_COMMIT && path) {
 
        if ((!hex) && type == OBJ_COMMIT && path) {
-               commit = lookup_commit_reference(&oid);
-               read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
-               type = sha1_object_info(oid.hash, &size);
+               commit = lookup_commit_reference(the_repository, &oid);
+               read_tree_recursive(the_repository, commit->maybe_tree,
+                       "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
+               type = oid_object_info(the_repository, &oid, &size);
        }
 
        if (type == OBJ_BAD) {
        }
 
        if (type == OBJ_BAD) {
@@ -156,7 +159,7 @@ void cgit_print_blob(const char *hex, char *path, const char *head, int file_onl
                return;
        }
 
                return;
        }
 
-       buf = read_sha1_file(oid.hash, &type, &size);
+       buf = read_object_file(&oid, &type, &size);
        if (!buf) {
                cgit_print_error_page(500, "Internal server error",
                                "Error reading object %s", hex);
        if (!buf) {
                cgit_print_error_page(500, "Internal server error",
                                "Error reading object %s", hex);