summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2008-06-24 21:42:32 (UTC)
committer Michael Krelin <hacker@klever.net>2008-06-24 21:42:32 (UTC)
commit42effc939090b2fbf1b2b76cd1d9c30fabcd230e (patch) (side-by-side diff)
treeba75a2bc400a2a1dab6417b33b97a0d020fabf0f
parent01d2dce7e73e3f022d186de27dd5d15574144ca8 (diff)
downloadcgit-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>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.c2
-rw-r--r--cgit.h1
-rw-r--r--ui-blob.c2
3 files changed, 4 insertions, 1 deletions
diff --git a/cgit.c b/cgit.c
index ac882c3..0deae12 100644
--- a/cgit.c
+++ b/cgit.c
@@ -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;
diff --git a/cgit.h b/cgit.h
index 4fa5cf2..1972d75 100644
--- a/cgit.h
+++ b/cgit.h
@@ -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;
diff --git a/ui-blob.c b/ui-blob.c
index dd1bbce..73a8c1d 100644
--- a/ui-blob.c
+++ b/ui-blob.c
@@ -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);
}