author | Lars Hjemli <hjemli@gmail.com> | 2011-03-05 13:01:59 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2011-03-05 13:01:59 (UTC) |
commit | 1b09cbd303d889ec2636127584d57b7f1b70c25e (patch) (unidiff) | |
tree | 2b1188f946451d06af4d9120cbc3ba34de716f21 | |
parent | 979c460e7f71d153ae79da67b8b21c3412f0fe02 (diff) | |
parent | 9e849950dc7c1f2fb6ffa62ab65bd30f35717d13 (diff) | |
download | cgit-1b09cbd303d889ec2636127584d57b7f1b70c25e.zip cgit-1b09cbd303d889ec2636127584d57b7f1b70c25e.tar.gz cgit-1b09cbd303d889ec2636127584d57b7f1b70c25e.tar.bz2 |
Merge branch 'stable'
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | cgit.c | 5 | ||||
-rw-r--r-- | html.c | 2 | ||||
-rw-r--r-- | ui-shared.c | 2 |
4 files changed, 7 insertions, 6 deletions
@@ -1,9 +1,9 @@ | |||
1 | CGIT_VERSION = v0.8.3.4 | 1 | CGIT_VERSION = v0.8.3.5 |
2 | CGIT_SCRIPT_NAME = cgit.cgi | 2 | CGIT_SCRIPT_NAME = cgit.cgi |
3 | CGIT_SCRIPT_PATH = /var/www/htdocs/cgit | 3 | CGIT_SCRIPT_PATH = /var/www/htdocs/cgit |
4 | CGIT_DATA_PATH = $(CGIT_SCRIPT_PATH) | 4 | CGIT_DATA_PATH = $(CGIT_SCRIPT_PATH) |
5 | CGIT_CONFIG = /etc/cgitrc | 5 | CGIT_CONFIG = /etc/cgitrc |
6 | CACHE_ROOT = /var/cache/cgit | 6 | CACHE_ROOT = /var/cache/cgit |
7 | prefix = /usr | 7 | prefix = /usr |
8 | libdir = $(prefix)/lib | 8 | libdir = $(prefix)/lib |
9 | filterdir = $(libdir)/cgit/filters | 9 | filterdir = $(libdir)/cgit/filters |
@@ -236,9 +236,9 @@ $(DOC_PDF): %.pdf : %.txt | |||
236 | 236 | ||
237 | clean: clean-doc | 237 | clean: clean-doc |
238 | rm -f cgit VERSION *.o *.d | 238 | rm -f cgit VERSION *.o *.d |
239 | 239 | ||
240 | clean-doc: | 240 | clean-doc: |
241 | rm -f cgitrc.5 cgitrc.5.html cgitrc.5.pdf cgitrc.5.xml cgitrc.5.fo | 241 | rm -f cgitrc.5 cgitrc.5.html cgitrc.5.pdf cgitrc.5.xml cgitrc.5.fo |
242 | 242 | ||
243 | get-git: | 243 | get-git: |
244 | curl $(GIT_URL) | tar -xj && rm -rf git && mv git-$(GIT_VER) git | 244 | curl $(GIT_URL) | tar -xjf - && rm -rf git && mv git-$(GIT_VER) git |
@@ -747,20 +747,21 @@ int main(int argc, const char **argv) | |||
747 | cgit_repolist.repos = NULL; | 747 | cgit_repolist.repos = NULL; |
748 | 748 | ||
749 | cgit_parse_args(argc, argv); | 749 | cgit_parse_args(argc, argv); |
750 | parse_configfile(expand_macros(ctx.env.cgit_config), config_cb); | 750 | parse_configfile(expand_macros(ctx.env.cgit_config), config_cb); |
751 | ctx.repo = NULL; | 751 | ctx.repo = NULL; |
752 | http_parse_querystring(ctx.qry.raw, querystring_cb); | 752 | http_parse_querystring(ctx.qry.raw, querystring_cb); |
753 | 753 | ||
754 | /* If virtual-root isn't specified in cgitrc, lets pretend | 754 | /* If virtual-root isn't specified in cgitrc, lets pretend |
755 | * that virtual-root equals SCRIPT_NAME. | 755 | * that virtual-root equals SCRIPT_NAME, minus any possibly |
756 | * trailing slashes. | ||
756 | */ | 757 | */ |
757 | if (!ctx.cfg.virtual_root) | 758 | if (!ctx.cfg.virtual_root) |
758 | ctx.cfg.virtual_root = ctx.cfg.script_name; | 759 | ctx.cfg.virtual_root = trim_end(ctx.cfg.script_name, '/'); |
759 | 760 | ||
760 | /* If no url parameter is specified on the querystring, lets | 761 | /* If no url parameter is specified on the querystring, lets |
761 | * use PATH_INFO as url. This allows cgit to work with virtual | 762 | * use PATH_INFO as url. This allows cgit to work with virtual |
762 | * urls without the need for rewriterules in the webserver (as | 763 | * urls without the need for rewriterules in the webserver (as |
763 | * long as PATH_INFO is included in the cache lookup key). | 764 | * long as PATH_INFO is included in the cache lookup key). |
764 | */ | 765 | */ |
765 | path = ctx.env.path_info; | 766 | path = ctx.env.path_info; |
766 | if (!ctx.qry.url && path) { | 767 | if (!ctx.qry.url && path) { |
@@ -272,17 +272,17 @@ char *convert_query_hexchar(char *txt) | |||
272 | n = strlen(txt); | 272 | n = strlen(txt); |
273 | if (n < 3) { | 273 | if (n < 3) { |
274 | *txt = '\0'; | 274 | *txt = '\0'; |
275 | return txt-1; | 275 | return txt-1; |
276 | } | 276 | } |
277 | d1 = hextoint(*(txt+1)); | 277 | d1 = hextoint(*(txt+1)); |
278 | d2 = hextoint(*(txt+2)); | 278 | d2 = hextoint(*(txt+2)); |
279 | if (d1<0 || d2<0) { | 279 | if (d1<0 || d2<0) { |
280 | memmove(txt, txt+3, n-3); | 280 | memmove(txt, txt+3, n-2); |
281 | return txt-1; | 281 | return txt-1; |
282 | } else { | 282 | } else { |
283 | *txt = d1 * 16 + d2; | 283 | *txt = d1 * 16 + d2; |
284 | memmove(txt+1, txt+3, n-2); | 284 | memmove(txt+1, txt+3, n-2); |
285 | return txt; | 285 | return txt; |
286 | } | 286 | } |
287 | } | 287 | } |
288 | 288 | ||
diff --git a/ui-shared.c b/ui-shared.c index 7efae7a..5aa9119 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
@@ -569,17 +569,17 @@ void cgit_print_http_headers(struct cgit_context *ctx) | |||
569 | if (ctx->page.status) | 569 | if (ctx->page.status) |
570 | htmlf("Status: %d %s\n", ctx->page.status, ctx->page.statusmsg); | 570 | htmlf("Status: %d %s\n", ctx->page.status, ctx->page.statusmsg); |
571 | if (ctx->page.mimetype && ctx->page.charset) | 571 | if (ctx->page.mimetype && ctx->page.charset) |
572 | htmlf("Content-Type: %s; charset=%s\n", ctx->page.mimetype, | 572 | htmlf("Content-Type: %s; charset=%s\n", ctx->page.mimetype, |
573 | ctx->page.charset); | 573 | ctx->page.charset); |
574 | else if (ctx->page.mimetype) | 574 | else if (ctx->page.mimetype) |
575 | htmlf("Content-Type: %s\n", ctx->page.mimetype); | 575 | htmlf("Content-Type: %s\n", ctx->page.mimetype); |
576 | if (ctx->page.size) | 576 | if (ctx->page.size) |
577 | htmlf("Content-Length: %ld\n", ctx->page.size); | 577 | htmlf("Content-Length: %zd\n", ctx->page.size); |
578 | if (ctx->page.filename) | 578 | if (ctx->page.filename) |
579 | htmlf("Content-Disposition: inline; filename=\"%s\"\n", | 579 | htmlf("Content-Disposition: inline; filename=\"%s\"\n", |
580 | ctx->page.filename); | 580 | ctx->page.filename); |
581 | htmlf("Last-Modified: %s\n", http_date(ctx->page.modified)); | 581 | htmlf("Last-Modified: %s\n", http_date(ctx->page.modified)); |
582 | htmlf("Expires: %s\n", http_date(ctx->page.expires)); | 582 | htmlf("Expires: %s\n", http_date(ctx->page.expires)); |
583 | if (ctx->page.etag) | 583 | if (ctx->page.etag) |
584 | htmlf("ETag: \"%s\"\n", ctx->page.etag); | 584 | htmlf("ETag: \"%s\"\n", ctx->page.etag); |
585 | html("\n"); | 585 | html("\n"); |