From mboxrd@z Thu Jan 1 00:00:00 1970 From: cgit at cryptocrack.de (Lukas Fleischer) Date: Wed, 15 Jan 2014 22:37:05 +0100 Subject: [PATCH 2/4] Remove context parameter from all commands In-Reply-To: <1389821827-3483-1-git-send-email-cgit@cryptocrack.de> References: <1389821827-3483-1-git-send-email-cgit@cryptocrack.de> Message-ID: <1389821827-3483-3-git-send-email-cgit@cryptocrack.de> Drop the context parameter from the following functions (and all static helpers used by them) and use the global context instead: * cgit_get_cmd() * All cgit command functions. * cgit_clone_info() * cgit_clone_objects() * cgit_clone_head() * cgit_print_plain() * cgit_show_stats() Fix all invocations of these functions accordingly. Signed-off-by: Lukas Fleischer --- cgit.c | 4 +-- cmd.c | 100 ++++++++++++++++++++++++++++++------------------------------- cmd.h | 4 +-- ui-clone.c | 42 +++++++++++++------------- ui-clone.h | 6 ++-- ui-plain.c | 10 +++---- ui-plain.h | 2 +- ui-stats.c | 29 +++++++++--------- ui-stats.h | 2 +- 9 files changed, 99 insertions(+), 100 deletions(-) diff --git a/cgit.c b/cgit.c index 512ef56..54efd59 100644 --- a/cgit.c +++ b/cgit.c @@ -598,7 +598,7 @@ static void process_request(void *cbdata) struct cgit_context *ctx = cbdata; struct cgit_cmd *cmd; - cmd = cgit_get_cmd(ctx); + cmd = cgit_get_cmd(); if (!cmd) { ctx->page.title = "cgit error"; ctx->page.status = 404; @@ -640,7 +640,7 @@ static void process_request(void *cbdata) cgit_print_pageheader(); } - cmd->fn(ctx); + cmd->fn(); if (cmd->want_layout) cgit_print_docend(); diff --git a/cmd.c b/cmd.c index 3022452..cbd235c 100644 --- a/cmd.c +++ b/cmd.c @@ -26,120 +26,120 @@ #include "ui-tag.h" #include "ui-tree.h" -static void HEAD_fn(struct cgit_context *ctx) +static void HEAD_fn(void) { - cgit_clone_head(ctx); + cgit_clone_head(); } -static void atom_fn(struct cgit_context *ctx) +static void atom_fn(void) { - cgit_print_atom(ctx->qry.head, ctx->qry.path, ctx->cfg.max_atom_items); + cgit_print_atom(ctx.qry.head, ctx.qry.path, ctx.cfg.max_atom_items); } -static void about_fn(struct cgit_context *ctx) +static void about_fn(void) { - if (ctx->repo) - cgit_print_repo_readme(ctx->qry.path); + if (ctx.repo) + cgit_print_repo_readme(ctx.qry.path); else cgit_print_site_readme(); } -static void blob_fn(struct cgit_context *ctx) +static void blob_fn(void) { - cgit_print_blob(ctx->qry.sha1, ctx->qry.path, ctx->qry.head, 0); + cgit_print_blob(ctx.qry.sha1, ctx.qry.path, ctx.qry.head, 0); } -static void commit_fn(struct cgit_context *ctx) +static void commit_fn(void) { - cgit_print_commit(ctx->qry.sha1, ctx->qry.path); + cgit_print_commit(ctx.qry.sha1, ctx.qry.path); } -static void diff_fn(struct cgit_context *ctx) +static void diff_fn(void) { - cgit_print_diff(ctx->qry.sha1, ctx->qry.sha2, ctx->qry.path, 1, 0); + cgit_print_diff(ctx.qry.sha1, ctx.qry.sha2, ctx.qry.path, 1, 0); } -static void rawdiff_fn(struct cgit_context *ctx) +static void rawdiff_fn(void) { - cgit_print_diff(ctx->qry.sha1, ctx->qry.sha2, ctx->qry.path, 1, 1); + cgit_print_diff(ctx.qry.sha1, ctx.qry.sha2, ctx.qry.path, 1, 1); } -static void info_fn(struct cgit_context *ctx) +static void info_fn(void) { - cgit_clone_info(ctx); + cgit_clone_info(); } -static void log_fn(struct cgit_context *ctx) +static void log_fn(void) { - cgit_print_log(ctx->qry.sha1, ctx->qry.ofs, ctx->cfg.max_commit_count, - ctx->qry.grep, ctx->qry.search, ctx->qry.path, 1, - ctx->repo->enable_commit_graph, - ctx->repo->commit_sort); + cgit_print_log(ctx.qry.sha1, ctx.qry.ofs, ctx.cfg.max_commit_count, + ctx.qry.grep, ctx.qry.search, ctx.qry.path, 1, + ctx.repo->enable_commit_graph, + ctx.repo->commit_sort); } -static void ls_cache_fn(struct cgit_context *ctx) +static void ls_cache_fn(void) { - ctx->page.mimetype = "text/plain"; - ctx->page.filename = "ls-cache.txt"; + ctx.page.mimetype = "text/plain"; + ctx.page.filename = "ls-cache.txt"; cgit_print_http_headers(); - cache_ls(ctx->cfg.cache_root); + cache_ls(ctx.cfg.cache_root); } -static void objects_fn(struct cgit_context *ctx) +static void objects_fn(void) { - cgit_clone_objects(ctx); + cgit_clone_objects(); } -static void repolist_fn(struct cgit_context *ctx) +static void repolist_fn(void) { cgit_print_repolist(); } -static void patch_fn(struct cgit_context *ctx) +static void patch_fn(void) { - cgit_print_patch(ctx->qry.sha1, ctx->qry.sha2, ctx->qry.path); + cgit_print_patch(ctx.qry.sha1, ctx.qry.sha2, ctx.qry.path); } -static void plain_fn(struct cgit_context *ctx) +static void plain_fn(void) { - cgit_print_plain(ctx); + cgit_print_plain(); } -static void refs_fn(struct cgit_context *ctx) +static void refs_fn(void) { cgit_print_refs(); } -static void snapshot_fn(struct cgit_context *ctx) +static void snapshot_fn(void) { - cgit_print_snapshot(ctx->qry.head, ctx->qry.sha1, ctx->qry.path, - ctx->repo->snapshots, ctx->qry.nohead); + cgit_print_snapshot(ctx.qry.head, ctx.qry.sha1, ctx.qry.path, + ctx.repo->snapshots, ctx.qry.nohead); } -static void stats_fn(struct cgit_context *ctx) +static void stats_fn(void) { - cgit_show_stats(ctx); + cgit_show_stats(); } -static void summary_fn(struct cgit_context *ctx) +static void summary_fn(void) { cgit_print_summary(); } -static void tag_fn(struct cgit_context *ctx) +static void tag_fn(void) { - cgit_print_tag(ctx->qry.sha1); + cgit_print_tag(ctx.qry.sha1); } -static void tree_fn(struct cgit_context *ctx) +static void tree_fn(void) { - cgit_print_tree(ctx->qry.sha1, ctx->qry.path); + cgit_print_tree(ctx.qry.sha1, ctx.qry.path); } #define def_cmd(name, want_repo, want_layout, want_vpath, is_clone) \ {#name, name##_fn, want_repo, want_layout, want_vpath, is_clone} -struct cgit_cmd *cgit_get_cmd(struct cgit_context *ctx) +struct cgit_cmd *cgit_get_cmd(void) { static struct cgit_cmd cmds[] = { def_cmd(HEAD, 1, 0, 0, 1), @@ -165,15 +165,15 @@ struct cgit_cmd *cgit_get_cmd(struct cgit_context *ctx) }; int i; - if (ctx->qry.page == NULL) { - if (ctx->repo) - ctx->qry.page = "summary"; + if (ctx.qry.page == NULL) { + if (ctx.repo) + ctx.qry.page = "summary"; else - ctx->qry.page = "repolist"; + ctx.qry.page = "repolist"; } for (i = 0; i < sizeof(cmds)/sizeof(*cmds); i++) - if (!strcmp(ctx->qry.page, cmds[i].name)) + if (!strcmp(ctx.qry.page, cmds[i].name)) return &cmds[i]; return NULL; } diff --git a/cmd.h b/cmd.h index eb5bc87..752f078 100644 --- a/cmd.h +++ b/cmd.h @@ -1,7 +1,7 @@ #ifndef CMD_H #define CMD_H -typedef void (*cgit_cmd_fn)(struct cgit_context *ctx); +typedef void (*cgit_cmd_fn)(void); struct cgit_cmd { const char *name; @@ -12,6 +12,6 @@ struct cgit_cmd { is_clone:1; }; -extern struct cgit_cmd *cgit_get_cmd(struct cgit_context *ctx); +extern struct cgit_cmd *cgit_get_cmd(void); #endif /* CMD_H */ diff --git a/ui-clone.c b/ui-clone.c index 09e2b46..d25553b 100644 --- a/ui-clone.c +++ b/ui-clone.c @@ -29,22 +29,22 @@ static int print_ref_info(const char *refname, const unsigned char *sha1, return 0; } -static void print_pack_info(struct cgit_context *ctx) +static void print_pack_info(void) { struct packed_git *pack; int ofs; - ctx->page.mimetype = "text/plain"; - ctx->page.filename = "objects/info/packs"; + ctx.page.mimetype = "text/plain"; + ctx.page.filename = "objects/info/packs"; cgit_print_http_headers(); - ofs = strlen(ctx->repo->path) + strlen("/objects/pack/"); + ofs = strlen(ctx.repo->path) + strlen("/objects/pack/"); prepare_packed_git(); for (pack = packed_git; pack; pack = pack->next) if (pack->pack_local) htmlf("P %s\n", pack->pack_name + ofs); } -static void send_file(struct cgit_context *ctx, char *path) +static void send_file(char *path) { struct stat st; @@ -61,41 +61,41 @@ static void send_file(struct cgit_context *ctx, char *path) } return; } - ctx->page.mimetype = "application/octet-stream"; - ctx->page.filename = path; - if (prefixcmp(ctx->repo->path, path)) - ctx->page.filename += strlen(ctx->repo->path) + 1; + ctx.page.mimetype = "application/octet-stream"; + ctx.page.filename = path; + if (prefixcmp(ctx.repo->path, path)) + ctx.page.filename += strlen(ctx.repo->path) + 1; cgit_print_http_headers(); html_include(path); } -void cgit_clone_info(struct cgit_context *ctx) +void cgit_clone_info(void) { - if (!ctx->qry.path || strcmp(ctx->qry.path, "refs")) + if (!ctx.qry.path || strcmp(ctx.qry.path, "refs")) return; - ctx->page.mimetype = "text/plain"; - ctx->page.filename = "info/refs"; + ctx.page.mimetype = "text/plain"; + ctx.page.filename = "info/refs"; cgit_print_http_headers(); - for_each_ref(print_ref_info, ctx); + for_each_ref(print_ref_info, NULL); } -void cgit_clone_objects(struct cgit_context *ctx) +void cgit_clone_objects(void) { - if (!ctx->qry.path) { + if (!ctx.qry.path) { html_status(400, "Bad request", 0); return; } - if (!strcmp(ctx->qry.path, "info/packs")) { - print_pack_info(ctx); + if (!strcmp(ctx.qry.path, "info/packs")) { + print_pack_info(); return; } - send_file(ctx, git_path("objects/%s", ctx->qry.path)); + send_file(git_path("objects/%s", ctx.qry.path)); } -void cgit_clone_head(struct cgit_context *ctx) +void cgit_clone_head(void) { - send_file(ctx, git_path("%s", "HEAD")); + send_file(git_path("%s", "HEAD")); } diff --git a/ui-clone.h b/ui-clone.h index 89cd4f1..3e460a3 100644 --- a/ui-clone.h +++ b/ui-clone.h @@ -1,8 +1,8 @@ #ifndef UI_CLONE_H #define UI_CLONE_H -void cgit_clone_info(struct cgit_context *ctx); -void cgit_clone_objects(struct cgit_context *ctx); -void cgit_clone_head(struct cgit_context *ctx); +void cgit_clone_info(void); +void cgit_clone_objects(void); +void cgit_clone_head(void); #endif /* UI_CLONE_H */ diff --git a/ui-plain.c b/ui-plain.c index 8909d30..30fff89 100644 --- a/ui-plain.c +++ b/ui-plain.c @@ -206,14 +206,14 @@ static int basedir_len(const char *path) return 0; } -void cgit_print_plain(struct cgit_context *ctx) +void cgit_print_plain(void) { - const char *rev = ctx->qry.sha1; + const char *rev = ctx.qry.sha1; unsigned char sha1[20]; struct commit *commit; struct pathspec_item path_items = { - .match = ctx->qry.path, - .len = ctx->qry.path ? strlen(ctx->qry.path) : 0 + .match = ctx.qry.path, + .len = ctx.qry.path ? strlen(ctx.qry.path) : 0 }; struct pathspec paths = { .nr = 1, @@ -224,7 +224,7 @@ void cgit_print_plain(struct cgit_context *ctx) }; if (!rev) - rev = ctx->qry.head; + rev = ctx.qry.head; if (get_sha1(rev, sha1)) { html_status(404, "Not found", 0); diff --git a/ui-plain.h b/ui-plain.h index 4373118..5bff07b 100644 --- a/ui-plain.h +++ b/ui-plain.h @@ -1,6 +1,6 @@ #ifndef UI_PLAIN_H #define UI_PLAIN_H -extern void cgit_print_plain(struct cgit_context *ctx); +extern void cgit_print_plain(void); #endif /* UI_PLAIN_H */ diff --git a/ui-stats.c b/ui-stats.c index 84b247c..bc27308 100644 --- a/ui-stats.c +++ b/ui-stats.c @@ -209,13 +209,12 @@ static int cmp_total_commits(const void *a1, const void *a2) /* Walk the commit DAG and collect number of commits per author per * timeperiod into a nested string_list collection. */ -static struct string_list collect_stats(struct cgit_context *ctx, - struct cgit_period *period) +static struct string_list collect_stats(struct cgit_period *period) { struct string_list authors; struct rev_info rev; struct commit *commit; - const char *argv[] = {NULL, ctx->qry.head, NULL, NULL, NULL, NULL}; + const char *argv[] = {NULL, ctx.qry.head, NULL, NULL, NULL, NULL}; int argc = 3; time_t now; long i; @@ -229,9 +228,9 @@ static struct string_list collect_stats(struct cgit_context *ctx, period->dec(tm); strftime(tmp, sizeof(tmp), "%Y-%m-%d", tm); argv[2] = xstrdup(fmt("--since=%s", tmp)); - if (ctx->qry.path) { + if (ctx.qry.path) { argv[3] = "--"; - argv[4] = ctx->qry.path; + argv[4] = ctx.qry.path; argc += 2; } init_revisions(&rev, NULL); @@ -360,30 +359,30 @@ static void print_authors(struct string_list *authors, int top, * for each author is another string_list which is used to calculate the * number of commits per time-interval. */ -void cgit_show_stats(struct cgit_context *ctx) +void cgit_show_stats(void) { struct string_list authors; struct cgit_period *period; int top, i; const char *code = "w"; - if (ctx->qry.period) - code = ctx->qry.period; + if (ctx.qry.period) + code = ctx.qry.period; i = cgit_find_stats_period(code, &period); if (!i) { cgit_print_error("Unknown statistics type: %c", code[0]); return; } - if (i > ctx->repo->max_stats) { + if (i > ctx.repo->max_stats) { cgit_print_error("Statistics type disabled: %s", period->name); return; } - authors = collect_stats(ctx, period); + authors = collect_stats(period); qsort(authors.items, authors.nr, sizeof(struct string_list_item), cmp_total_commits); - top = ctx->qry.ofs; + top = ctx.qry.ofs; if (!top) top = 10; @@ -392,10 +391,10 @@ void cgit_show_stats(struct cgit_context *ctx) html("
"); cgit_add_hidden_formfields(1, 0, "stats"); html(""); - if (ctx->repo->max_stats > 1) { + if (ctx.repo->max_stats > 1) { html(""); html(""); @@ -414,9 +413,9 @@ void cgit_show_stats(struct cgit_context *ctx) html(""); html(""); htmlf("

Commits per author per %s", period->name); - if (ctx->qry.path) { + if (ctx.qry.path) { html(" (path '"); - html_txt(ctx->qry.path); + html_txt(ctx.qry.path); html("')"); } html("

"); diff --git a/ui-stats.h b/ui-stats.h index f0761ba..341ab13 100644 --- a/ui-stats.h +++ b/ui-stats.h @@ -23,6 +23,6 @@ struct cgit_period { extern int cgit_find_stats_period(const char *expr, struct cgit_period **period); extern const char *cgit_find_stats_periodname(int idx); -extern void cgit_show_stats(struct cgit_context *ctx); +extern void cgit_show_stats(void); #endif /* UI_STATS_H */ -- 1.8.5.2
Period: