static unsigned char *matched_sha1;
static int found_path;
-static int walk_tree(const unsigned char *sha1, const char *base,int baselen,
+static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
const char *pathname, unsigned mode, int stage, void *cbdata) {
- if(strncmp(base,match_path,baselen)
- || strcmp(match_path+baselen,pathname) )
+ if (strncmp(base, match_path, baselen)
+ || strcmp(match_path + baselen, pathname))
return READ_TREE_RECURSIVE;
- memmove(matched_sha1,sha1,20);
+ memmove(matched_sha1, sha1, 20);
found_path = 1;
return 0;
}
char *buf;
unsigned long size;
struct commit *commit;
- const char *paths[] = {path, NULL};
+ struct pathspec_item path_items = {
+ .match = path,
+ .len = strlen(path)
+ };
+ struct pathspec paths = {
+ .nr = 1,
+ .items = &path_items
+ };
if (get_sha1(head, sha1))
return -1;
type = sha1_object_info(sha1, &size);
- if(type == OBJ_COMMIT && path) {
+ if (type == OBJ_COMMIT && path) {
commit = lookup_commit_reference(sha1);
match_path = path;
matched_sha1 = sha1;
found_path = 0;
- read_tree_recursive(commit->tree, "", 0, 0, paths, walk_tree, NULL);
+ read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, NULL);
if (!found_path)
return -1;
type = sha1_object_info(sha1, &size);
if (!buf)
return -1;
buf[size] = '\0';
- write(htmlfd, buf, size);
+ html_raw(buf, size);
return 0;
}
char *buf;
unsigned long size;
struct commit *commit;
- const char *paths[] = {path, NULL};
+ struct pathspec_item path_items = {
+ .match = path,
+ .len = strlen(path)
+ };
+ struct pathspec paths = {
+ .nr = 1,
+ .items = &path_items
+ };
if (hex) {
- if (get_sha1_hex(hex, sha1)){
+ if (get_sha1_hex(hex, sha1)) {
cgit_print_error(fmt("Bad hex value: %s", hex));
return;
}
} else {
- if (get_sha1(head,sha1)) {
+ if (get_sha1(head, sha1)) {
cgit_print_error(fmt("Bad ref: %s", head));
return;
}
type = sha1_object_info(sha1, &size);
- if((!hex) && type == OBJ_COMMIT && path) {
+ if ((!hex) && type == OBJ_COMMIT && path) {
commit = lookup_commit_reference(sha1);
match_path = path;
matched_sha1 = sha1;
- read_tree_recursive(commit->tree, "", 0, 0, paths, walk_tree, NULL);
+ read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, NULL);
type = sha1_object_info(sha1,&size);
}
}
ctx.page.filename = path;
cgit_print_http_headers(&ctx);
- write(htmlfd, buf, size);
+ html_raw(buf, size);
}