diff options
Diffstat (limited to 'ui-plain.c')
-rw-r--r-- | ui-plain.c | 28 |
1 files changed, 14 insertions, 14 deletions
@@ -16,19 +16,19 @@ struct walk_tree_context { | |||
16 | int match; | 16 | int match; |
17 | }; | 17 | }; |
18 | 18 | ||
19 | static int print_object(const unsigned char *sha1, const char *path) | 19 | static int print_object(const struct object_id *oid, const char *path) |
20 | { | 20 | { |
21 | enum object_type type; | 21 | enum object_type type; |
22 | char *buf, *mimetype; | 22 | char *buf, *mimetype; |
23 | unsigned long size; | 23 | unsigned long size; |
24 | 24 | ||
25 | type = sha1_object_info(sha1, &size); | 25 | type = oid_object_info(the_repository, oid, &size); |
26 | if (type == OBJ_BAD) { | 26 | if (type == OBJ_BAD) { |
27 | cgit_print_error_page(404, "Not found", "Not found"); | 27 | cgit_print_error_page(404, "Not found", "Not found"); |
28 | return 0; | 28 | return 0; |
29 | } | 29 | } |
30 | 30 | ||
31 | buf = read_sha1_file(sha1, &type, &size); | 31 | buf = read_object_file(oid, &type, &size); |
32 | if (!buf) { | 32 | if (!buf) { |
33 | cgit_print_error_page(404, "Not found", "Not found"); | 33 | cgit_print_error_page(404, "Not found", "Not found"); |
34 | return 0; | 34 | return 0; |
@@ -57,7 +57,7 @@ static int print_object(const unsigned char *sha1, const char *path) | |||
57 | } | 57 | } |
58 | ctx.page.filename = path; | 58 | ctx.page.filename = path; |
59 | ctx.page.size = size; | 59 | ctx.page.size = size; |
60 | ctx.page.etag = sha1_to_hex(sha1); | 60 | ctx.page.etag = oid_to_hex(oid); |
61 | cgit_print_http_headers(); | 61 | cgit_print_http_headers(); |
62 | html_raw(buf, size); | 62 | html_raw(buf, size); |
63 | free(mimetype); | 63 | free(mimetype); |
@@ -73,7 +73,7 @@ static char *buildpath(const char *base, int baselen, const char *path) | |||
73 | return fmtalloc("%.*s/", baselen, base); | 73 | return fmtalloc("%.*s/", baselen, base); |
74 | } | 74 | } |
75 | 75 | ||
76 | static void print_dir(const unsigned char *sha1, const char *base, | 76 | static void print_dir(const struct object_id *oid, const char *base, |
77 | int baselen, const char *path) | 77 | int baselen, const char *path) |
78 | { | 78 | { |
79 | char *fullpath, *slash; | 79 | char *fullpath, *slash; |
@@ -81,7 +81,7 @@ static void print_dir(const unsigned char *sha1, const char *base, | |||
81 | 81 | ||
82 | fullpath = buildpath(base, baselen, path); | 82 | fullpath = buildpath(base, baselen, path); |
83 | slash = (fullpath[0] == '/' ? "" : "/"); | 83 | slash = (fullpath[0] == '/' ? "" : "/"); |
84 | ctx.page.etag = sha1_to_hex(sha1); | 84 | ctx.page.etag = oid_to_hex(oid); |
85 | cgit_print_http_headers(); | 85 | cgit_print_http_headers(); |
86 | htmlf("<html><head><title>%s", slash); | 86 | htmlf("<html><head><title>%s", slash); |
87 | html_txt(fullpath); | 87 | html_txt(fullpath); |
@@ -106,7 +106,7 @@ static void print_dir(const unsigned char *sha1, const char *base, | |||
106 | free(fullpath); | 106 | free(fullpath); |
107 | } | 107 | } |
108 | 108 | ||
109 | static void print_dir_entry(const unsigned char *sha1, const char *base, | 109 | static void print_dir_entry(const struct object_id *oid, const char *base, |
110 | int baselen, const char *path, unsigned mode) | 110 | int baselen, const char *path, unsigned mode) |
111 | { | 111 | { |
112 | char *fullpath; | 112 | char *fullpath; |
@@ -116,7 +116,7 @@ static void print_dir_entry(const unsigned char *sha1, const char *base, | |||
116 | fullpath[strlen(fullpath) - 1] = 0; | 116 | fullpath[strlen(fullpath) - 1] = 0; |
117 | html(" <li>"); | 117 | html(" <li>"); |
118 | if (S_ISGITLINK(mode)) { | 118 | if (S_ISGITLINK(mode)) { |
119 | cgit_submodule_link(NULL, fullpath, sha1_to_hex(sha1)); | 119 | cgit_submodule_link(NULL, fullpath, oid_to_hex(oid)); |
120 | } else | 120 | } else |
121 | cgit_plain_link(path, NULL, NULL, ctx.qry.head, ctx.qry.sha1, | 121 | cgit_plain_link(path, NULL, NULL, ctx.qry.head, ctx.qry.sha1, |
122 | fullpath); | 122 | fullpath); |
@@ -129,22 +129,22 @@ static void print_dir_tail(void) | |||
129 | html(" </ul>\n</body></html>\n"); | 129 | html(" </ul>\n</body></html>\n"); |
130 | } | 130 | } |
131 | 131 | ||
132 | static int walk_tree(const unsigned char *sha1, struct strbuf *base, | 132 | static int walk_tree(const struct object_id *oid, struct strbuf *base, |
133 | const char *pathname, unsigned mode, int stage, void *cbdata) | 133 | const char *pathname, unsigned mode, int stage, void *cbdata) |
134 | { | 134 | { |
135 | struct walk_tree_context *walk_tree_ctx = cbdata; | 135 | struct walk_tree_context *walk_tree_ctx = cbdata; |
136 | 136 | ||
137 | if (base->len == walk_tree_ctx->match_baselen) { | 137 | if (base->len == walk_tree_ctx->match_baselen) { |
138 | if (S_ISREG(mode) || S_ISLNK(mode)) { | 138 | if (S_ISREG(mode) || S_ISLNK(mode)) { |
139 | if (print_object(sha1, pathname)) | 139 | if (print_object(oid, pathname)) |
140 | walk_tree_ctx->match = 1; | 140 | walk_tree_ctx->match = 1; |
141 | } else if (S_ISDIR(mode)) { | 141 | } else if (S_ISDIR(mode)) { |
142 | print_dir(sha1, base->buf, base->len, pathname); | 142 | print_dir(oid, base->buf, base->len, pathname); |
143 | walk_tree_ctx->match = 2; | 143 | walk_tree_ctx->match = 2; |
144 | return READ_TREE_RECURSIVE; | 144 | return READ_TREE_RECURSIVE; |
145 | } | 145 | } |
146 | } else if (base->len < INT_MAX && (int)base->len > walk_tree_ctx->match_baselen) { | 146 | } else if (base->len < INT_MAX && (int)base->len > walk_tree_ctx->match_baselen) { |
147 | print_dir_entry(sha1, base->buf, base->len, pathname, mode); | 147 | print_dir_entry(oid, base->buf, base->len, pathname, mode); |
148 | walk_tree_ctx->match = 2; | 148 | walk_tree_ctx->match = 2; |
149 | } else if (S_ISDIR(mode)) { | 149 | } else if (S_ISDIR(mode)) { |
150 | return READ_TREE_RECURSIVE; | 150 | return READ_TREE_RECURSIVE; |
@@ -193,12 +193,12 @@ void cgit_print_plain(void) | |||
193 | if (!path_items.match) { | 193 | if (!path_items.match) { |
194 | path_items.match = ""; | 194 | path_items.match = ""; |
195 | walk_tree_ctx.match_baselen = -1; | 195 | walk_tree_ctx.match_baselen = -1; |
196 | print_dir(commit->tree->object.oid.hash, "", 0, ""); | 196 | print_dir(&commit->maybe_tree->object.oid, "", 0, ""); |
197 | walk_tree_ctx.match = 2; | 197 | walk_tree_ctx.match = 2; |
198 | } | 198 | } |
199 | else | 199 | else |
200 | walk_tree_ctx.match_baselen = basedir_len(path_items.match); | 200 | walk_tree_ctx.match_baselen = basedir_len(path_items.match); |
201 | read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx); | 201 | read_tree_recursive(commit->maybe_tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx); |
202 | if (!walk_tree_ctx.match) | 202 | if (!walk_tree_ctx.match) |
203 | cgit_print_error_page(404, "Not found", "Not found"); | 203 | cgit_print_error_page(404, "Not found", "Not found"); |
204 | else if (walk_tree_ctx.match == 2) | 204 | else if (walk_tree_ctx.match == 2) |