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
@@ -139,16 +139,18 @@ static void querystring_cb(const char *name, const char *value) 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; @@ -111,16 +111,17 @@ struct cgit_query { 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; @@ -60,13 +60,13 @@ void cgit_print_blob(const char *hex, char *path, const char *head) 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); } |