summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.c2
-rw-r--r--cgit.h2
-rw-r--r--ui-shared.c2
3 files changed, 6 insertions, 0 deletions
diff --git a/cgit.c b/cgit.c
index 64d95f9..19adadd 100644
--- a/cgit.c
+++ b/cgit.c
@@ -280,16 +280,18 @@ static int prepare_repo_cmd(struct cgit_context *ctx)
280 cgit_print_error("Repository seems to be empty"); 280 cgit_print_error("Repository seems to be empty");
281 cgit_print_docend(); 281 cgit_print_docend();
282 return 1; 282 return 1;
283 } 283 }
284 284
285 if (get_sha1(ctx->qry.head, sha1)) { 285 if (get_sha1(ctx->qry.head, sha1)) {
286 tmp = xstrdup(ctx->qry.head); 286 tmp = xstrdup(ctx->qry.head);
287 ctx->qry.head = ctx->repo->defbranch; 287 ctx->qry.head = ctx->repo->defbranch;
288 ctx->page.status = 404;
289 ctx->page.statusmsg = "not found";
288 cgit_print_http_headers(ctx); 290 cgit_print_http_headers(ctx);
289 cgit_print_docstart(ctx); 291 cgit_print_docstart(ctx);
290 cgit_print_pageheader(ctx); 292 cgit_print_pageheader(ctx);
291 cgit_print_error(fmt("Invalid branch: %s", tmp)); 293 cgit_print_error(fmt("Invalid branch: %s", tmp));
292 cgit_print_docend(); 294 cgit_print_docend();
293 return 1; 295 return 1;
294 } 296 }
295 return 0; 297 return 0;
diff --git a/cgit.h b/cgit.h
index 5f7af51..00aca4c 100644
--- a/cgit.h
+++ b/cgit.h
@@ -176,16 +176,18 @@ struct cgit_config {
176struct cgit_page { 176struct cgit_page {
177 time_t modified; 177 time_t modified;
178 time_t expires; 178 time_t expires;
179 size_t size; 179 size_t size;
180 char *mimetype; 180 char *mimetype;
181 char *charset; 181 char *charset;
182 char *filename; 182 char *filename;
183 char *title; 183 char *title;
184 int status;
185 char *statusmsg;
184}; 186};
185 187
186struct cgit_context { 188struct cgit_context {
187 struct cgit_query qry; 189 struct cgit_query qry;
188 struct cgit_config cfg; 190 struct cgit_config cfg;
189 struct cgit_repo *repo; 191 struct cgit_repo *repo;
190 struct cgit_page page; 192 struct cgit_page page;
191}; 193};
diff --git a/ui-shared.c b/ui-shared.c
index de77bbf..2630f23 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -451,16 +451,18 @@ void cgit_print_age(time_t t, time_t max_relative, char *format)
451 return; 451 return;
452 } 452 }
453 htmlf("<span class='age-years'>%.0f years</span>", 453 htmlf("<span class='age-years'>%.0f years</span>",
454 secs * 1.0 / TM_YEAR); 454 secs * 1.0 / TM_YEAR);
455} 455}
456 456
457void cgit_print_http_headers(struct cgit_context *ctx) 457void cgit_print_http_headers(struct cgit_context *ctx)
458{ 458{
459 if (ctx->page.status)
460 htmlf("Status: %d %s\n", ctx->page.status, ctx->page.statusmsg);
459 if (ctx->page.mimetype && ctx->page.charset) 461 if (ctx->page.mimetype && ctx->page.charset)
460 htmlf("Content-Type: %s; charset=%s\n", ctx->page.mimetype, 462 htmlf("Content-Type: %s; charset=%s\n", ctx->page.mimetype,
461 ctx->page.charset); 463 ctx->page.charset);
462 else if (ctx->page.mimetype) 464 else if (ctx->page.mimetype)
463 htmlf("Content-Type: %s\n", ctx->page.mimetype); 465 htmlf("Content-Type: %s\n", ctx->page.mimetype);
464 if (ctx->page.size) 466 if (ctx->page.size)
465 htmlf("Content-Length: %ld\n", ctx->page.size); 467 htmlf("Content-Length: %ld\n", ctx->page.size);
466 if (ctx->page.filename) 468 if (ctx->page.filename)