* (see COPYING for full license text)
*/
-#include <stdio.h>
#include "cgit.h"
#include "ui-plain.h"
#include "html.h"
type = sha1_object_info(sha1, &size);
if (type == OBJ_BAD) {
- html_status(404, "Not found", 0);
+ cgit_print_error_page(404, "Not found", "Not found");
return 0;
}
buf = read_sha1_file(sha1, &type, &size);
if (!buf) {
- html_status(404, "Not found", 0);
+ cgit_print_error_page(404, "Not found", "Not found");
return 0;
}
ctx.page.mimetype = NULL;
html(" </ul>\n</body></html>\n");
}
-static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
- const char *pathname, unsigned mode, int stage,
- void *cbdata)
+static int walk_tree(const unsigned char *sha1, struct strbuf *base,
+ const char *pathname, unsigned mode, int stage, void *cbdata)
{
struct walk_tree_context *walk_tree_ctx = cbdata;
- if (baselen == walk_tree_ctx->match_baselen) {
+ if (base->len == walk_tree_ctx->match_baselen) {
if (S_ISREG(mode)) {
if (print_object(sha1, pathname))
walk_tree_ctx->match = 1;
} else if (S_ISDIR(mode)) {
- print_dir(sha1, base, baselen, pathname);
+ print_dir(sha1, base->buf, base->len, pathname);
walk_tree_ctx->match = 2;
return READ_TREE_RECURSIVE;
}
- } else if (baselen > walk_tree_ctx->match_baselen) {
- print_dir_entry(sha1, base, baselen, pathname, mode);
+ } else if (base->len > walk_tree_ctx->match_baselen) {
+ print_dir_entry(sha1, base->buf, base->len, pathname, mode);
walk_tree_ctx->match = 2;
} else if (S_ISDIR(mode)) {
return READ_TREE_RECURSIVE;
rev = ctx.qry.head;
if (get_sha1(rev, sha1)) {
- html_status(404, "Not found", 0);
+ cgit_print_error_page(404, "Not found", "Not found");
return;
}
commit = lookup_commit_reference(sha1);
if (!commit || parse_commit(commit)) {
- html_status(404, "Not found", 0);
+ cgit_print_error_page(404, "Not found", "Not found");
return;
}
if (!path_items.match) {
walk_tree_ctx.match_baselen = basedir_len(path_items.match);
read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
if (!walk_tree_ctx.match)
- html_status(404, "Not found", 0);
+ cgit_print_error_page(404, "Not found", "Not found");
else if (walk_tree_ctx.match == 2)
print_dir_tail();
}