author | Michael Krelin <hacker@klever.net> | 2008-06-24 21:42:32 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2008-06-24 21:42:32 (UTC) |
commit | 42effc939090b2fbf1b2b76cd1d9c30fabcd230e (patch) (side-by-side diff) | |
tree | ba75a2bc400a2a1dab6417b33b97a0d020fabf0f | |
parent | 01d2dce7e73e3f022d186de27dd5d15574144ca8 (diff) | |
download | cgit-42effc939090b2fbf1b2b76cd1d9c30fabcd230e.zip cgit-42effc939090b2fbf1b2b76cd1d9c30fabcd230e.tar.gz cgit-42effc939090b2fbf1b2b76cd1d9c30fabcd230e.tar.bz2 |
allow specification of directly linked blobs mimetypes
Signed-off-by: Michael Krelin <hacker@klever.net>
-rw-r--r-- | cgit.c | 2 | ||||
-rw-r--r-- | cgit.h | 1 | ||||
-rw-r--r-- | ui-blob.c | 2 |
3 files changed, 4 insertions, 1 deletions
@@ -131,32 +131,34 @@ static void querystring_cb(const char *name, const char *value) ctx.qry.search = xstrdup(value); } else if (!strcmp(name, "h")) { ctx.qry.head = xstrdup(value); ctx.qry.has_symref = 1; } else if (!strcmp(name, "id")) { ctx.qry.sha1 = xstrdup(value); ctx.qry.has_sha1 = 1; } else if (!strcmp(name, "id2")) { ctx.qry.sha2 = xstrdup(value); ctx.qry.has_sha1 = 1; } else if (!strcmp(name, "ofs")) { ctx.qry.ofs = atoi(value); } else if (!strcmp(name, "path")) { ctx.qry.path = trim_end(value, '/'); } else if (!strcmp(name, "name")) { ctx.qry.name = xstrdup(value); + } else if (!strcmp(name, "mimetype")) { + ctx.qry.mimetype = xstrdup(value); } } static void prepare_context(struct cgit_context *ctx) { memset(ctx, 0, sizeof(ctx)); ctx->cfg.agefile = "info/web/last-modified"; ctx->cfg.nocache = 0; ctx->cfg.cache_size = 0; ctx->cfg.cache_dynamic_ttl = 5; ctx->cfg.cache_max_create_time = 5; ctx->cfg.cache_repo_ttl = 5; ctx->cfg.cache_root = CGIT_CACHE_ROOT; ctx->cfg.cache_root_ttl = 5; ctx->cfg.cache_static_ttl = -1; ctx->cfg.css = "/cgit.css"; @@ -103,32 +103,33 @@ struct reflist { int count; }; struct cgit_query { int has_symref; int has_sha1; char *raw; char *repo; char *page; char *search; char *grep; char *head; char *sha1; char *sha2; char *path; char *name; + char *mimetype; int ofs; }; struct cgit_config { char *agefile; char *cache_root; char *clone_prefix; char *css; char *index_header; char *index_info; char *logo; char *logo_link; char *module_link; char *repo_group; char *robots; char *root_title; @@ -52,21 +52,21 @@ void cgit_print_blob(const char *hex, char *path, const char *head) read_tree_recursive(commit->tree, NULL, 0, 0, paths, walk_tree); type = sha1_object_info(sha1,&size); } if (type == OBJ_BAD) { cgit_print_error(fmt("Bad object name: %s", hex)); return; } buf = read_sha1_file(sha1, &type, &size); if (!buf) { cgit_print_error(fmt("Error reading object %s", hex)); return; } buf[size] = '\0'; - ctx.page.mimetype = NULL; + ctx.page.mimetype = ctx.qry.mimetype; ctx.page.filename = path; cgit_print_http_headers(&ctx); write(htmlfd, buf, size); } |