diff --git a/cgit.c b/cgit.c index ac882c3..0deae12 100644 --- a/cgit.c +++ b/cgit.c @@ -144,6 +144,8 @@ static void querystring_cb(const char *name, const char *value) 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); } } diff --git a/cgit.h b/cgit.h index 4fa5cf2..1972d75 100644 --- a/cgit.h +++ b/cgit.h @@ -116,6 +116,7 @@ struct cgit_query { char *sha2; char *path; char *name; + char *mimetype; int ofs; }; diff --git a/ui-blob.c b/ui-blob.c index dd1bbce..73a8c1d 100644 --- a/ui-blob.c +++ b/ui-blob.c @@ -65,7 +65,7 @@ void cgit_print_blob(const char *hex, char *path, const char *head) } 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);