summary refs log tree commit diff
diff options
context:
space:
mode:
-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
@@ -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);