diff options
author | John Keeping <john@keeping.me.uk> | 2013-04-06 11:23:52 +0100 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2013-04-08 16:11:29 +0200 |
commit | ed5bd30ebe6921dd22948a3f33a314283f043606 (patch) | |
tree | 494f1ac8aae7c2147146fefc9aebcdb1bfa671c0 /cgit.c | |
parent | d2e20e38141c882e46eaa77f172fc2ae37a19d3b (diff) | |
download | cgit-ed5bd30ebe6921dd22948a3f33a314283f043606.tar.gz cgit-ed5bd30ebe6921dd22948a3f33a314283f043606.tar.bz2 cgit-ed5bd30ebe6921dd22948a3f33a314283f043606.zip |
Convert cgit_print_error to a variadic function
This removes many uses of "fmt" which uses a fixed size static pool of
fixed size buffers. Instead of relying on these, we now pass around
argument lists for as long as possible before using a strbuf to render
content of an arbitrary size.
Signed-off-by: John Keeping <john@keeping.me.uk>
Diffstat (limited to 'cgit.c')
-rw-r--r-- | cgit.c | 18 |
1 files changed, 8 insertions, 10 deletions
@@ -459,7 +459,6 @@ static char *guess_defbranch(void) static int prepare_repo_cmd(struct cgit_context *ctx) { - char *tmp; unsigned char sha1[20]; int nongit = 0; int rc; @@ -467,17 +466,16 @@ static int prepare_repo_cmd(struct cgit_context *ctx) setenv("GIT_DIR", ctx->repo->path, 1); setup_git_directory_gently(&nongit); if (nongit) { + const char *name = ctx->repo->name; rc = errno; ctx->page.title = fmt("%s - %s", ctx->cfg.root_title, "config error"); - tmp = fmt("Failed to open %s: %s", - ctx->repo->name, - rc ? strerror(rc) : "Not a valid git repository"); ctx->repo = NULL; cgit_print_http_headers(ctx); cgit_print_docstart(ctx); cgit_print_pageheader(ctx); - cgit_print_error(tmp); + cgit_print_error("Failed to open %s: %s", name, + rc ? strerror(rc) : "Not a valid git repository"); cgit_print_docend(); return 1; } @@ -501,14 +499,14 @@ static int prepare_repo_cmd(struct cgit_context *ctx) } if (get_sha1(ctx->qry.head, sha1)) { - tmp = xstrdup(ctx->qry.head); + char *tmp = xstrdup(ctx->qry.head); ctx->qry.head = ctx->repo->defbranch; ctx->page.status = 404; ctx->page.statusmsg = "Not found"; cgit_print_http_headers(ctx); cgit_print_docstart(ctx); cgit_print_pageheader(ctx); - cgit_print_error(fmt("Invalid branch: %s", tmp)); + cgit_print_error("Invalid branch: %s", tmp); cgit_print_docend(); return 1; } @@ -550,7 +548,7 @@ static void process_request(void *cbdata) cgit_print_http_headers(ctx); cgit_print_docstart(ctx); cgit_print_pageheader(ctx); - cgit_print_error(fmt("No repository selected")); + cgit_print_error("No repository selected"); cgit_print_docend(); return; } @@ -862,7 +860,7 @@ int main(int argc, const char **argv) err = cache_process(ctx.cfg.cache_size, ctx.cfg.cache_root, ctx.qry.raw, ttl, process_request, &ctx); if (err) - cgit_print_error(fmt("Error processing page: %s (%d)", - strerror(err), err)); + cgit_print_error("Error processing page: %s (%d)", + strerror(err), err); return err; } |