author | Lars Hjemli <hjemli@gmail.com> | 2008-02-16 10:53:40 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2008-02-16 11:07:28 (UTC) |
commit | d14d77fe95c3b6224b40df9b101dded0deea913c (patch) (side-by-side diff) | |
tree | 7e0d9c8f2c0f86b8946aea0bb823085c33b164b3 | |
parent | e5ed227ef0da561e2bde8646ec816842392377ee (diff) | |
download | cgit-d14d77fe95c3b6224b40df9b101dded0deea913c.zip cgit-d14d77fe95c3b6224b40df9b101dded0deea913c.tar.gz cgit-d14d77fe95c3b6224b40df9b101dded0deea913c.tar.bz2 |
Introduce struct cgit_context
This struct will hold all the cgit runtime information currently found in
a multitude of global variables.
The first cleanup removes all querystring-related variables.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | cache.c | 4 | ||||
-rw-r--r-- | cgit.c | 72 | ||||
-rw-r--r-- | cgit.h | 35 | ||||
-rw-r--r-- | parsing.c | 8 | ||||
-rw-r--r-- | shared.c | 43 | ||||
-rw-r--r-- | ui-commit.c | 14 | ||||
-rw-r--r-- | ui-diff.c | 6 | ||||
-rw-r--r-- | ui-log.c | 20 | ||||
-rw-r--r-- | ui-patch.c | 2 | ||||
-rw-r--r-- | ui-refs.c | 4 | ||||
-rw-r--r-- | ui-shared.c | 86 | ||||
-rw-r--r-- | ui-summary.c | 6 | ||||
-rw-r--r-- | ui-tree.c | 20 |
13 files changed, 156 insertions, 164 deletions
@@ -58,8 +58,8 @@ int cache_create_dirs() return 0; - if (cgit_query_page) { + if (ctx.qry.page) { path = fmt("%s/%s/%s", cgit_cache_root, cache_safe_filename(cgit_repo->url), - cgit_query_page); + ctx.qry.page); if (mkdir(path, S_IRWXU) && errno!=EEXIST) return 0; @@ -11,9 +11,9 @@ static int cgit_prepare_cache(struct cacheitem *item) { - if (!cgit_repo && cgit_query_repo) { + if (!cgit_repo && ctx.qry.repo) { char *title = fmt("%s - %s", cgit_root_title, "Bad request"); cgit_print_docstart(title, item); cgit_print_pageheader(title, 0); - cgit_print_error(fmt("Unknown repo: %s", cgit_query_repo)); + cgit_print_error(fmt("Unknown repo: %s", ctx.qry.repo)); cgit_print_docend(); return 0; @@ -29,14 +29,14 @@ static int cgit_prepare_cache(struct cacheitem *item) item->name = xstrdup(fmt("%s/%s/index.%s.html", cgit_cache_root, cache_safe_filename(cgit_repo->url), - cache_safe_filename(cgit_querystring))); + cache_safe_filename(ctx.qry.raw))); item->ttl = cgit_cache_repo_ttl; } else { item->name = xstrdup(fmt("%s/%s/%s/%s.html", cgit_cache_root, cache_safe_filename(cgit_repo->url), - cgit_query_page, - cache_safe_filename(cgit_querystring))); - if (cgit_query_has_symref) + ctx.qry.page, + cache_safe_filename(ctx.qry.raw))); + if (ctx.qry.has_symref) item->ttl = cgit_cache_dynamic_ttl; - else if (cgit_query_has_sha1) + else if (ctx.qry.has_sha1) item->ttl = cgit_cache_static_ttl; else @@ -99,10 +99,10 @@ static void cgit_print_repo_page(struct cacheitem *item) setenv("GIT_DIR", cgit_repo->path, 1); - if (!cgit_query_head) { - cgit_query_head = xstrdup(find_default_branch(cgit_repo)); - cgit_repo->defbranch = cgit_query_head; + if (!ctx.qry.head) { + ctx.qry.head = xstrdup(find_default_branch(cgit_repo)); + cgit_repo->defbranch = ctx.qry.head; } - if (!cgit_query_head) { + if (!ctx.qry.head) { cgit_print_docstart(title, item); cgit_print_pageheader(title, 0); @@ -112,7 +112,7 @@ static void cgit_print_repo_page(struct cacheitem *item) } - if (get_sha1(cgit_query_head, sha1)) { - tmp = xstrdup(cgit_query_head); - cgit_query_head = cgit_repo->defbranch; + if (get_sha1(ctx.qry.head, sha1)) { + tmp = xstrdup(ctx.qry.head); + ctx.qry.head = cgit_repo->defbranch; cgit_print_docstart(title, item); cgit_print_pageheader(title, 0); @@ -123,7 +123,7 @@ static void cgit_print_repo_page(struct cacheitem *item) if ((cgit_cmd == CMD_SNAPSHOT) && cgit_repo->snapshots) { - cgit_print_snapshot(item, cgit_query_head, cgit_query_sha1, + cgit_print_snapshot(item, ctx.qry.head, ctx.qry.sha1, cgit_repobasename(cgit_repo->url), - cgit_query_path, + ctx.qry.path, cgit_repo->snapshots ); return; @@ -131,10 +131,10 @@ static void cgit_print_repo_page(struct cacheitem *item) if (cgit_cmd == CMD_PATCH) { - cgit_print_patch(cgit_query_sha1, item); + cgit_print_patch(ctx.qry.sha1, item); return; } if (cgit_cmd == CMD_BLOB) { - cgit_print_blob(item, cgit_query_sha1, cgit_query_path); + cgit_print_blob(item, ctx.qry.sha1, ctx.qry.path); return; } @@ -149,17 +149,17 @@ static void cgit_print_repo_page(struct cacheitem *item) } - cgit_print_pageheader(cgit_query_page, show_search); + cgit_print_pageheader(ctx.qry.page, show_search); switch(cgit_cmd) { case CMD_LOG: - cgit_print_log(cgit_query_sha1, cgit_query_ofs, - cgit_max_commit_count, cgit_query_grep, cgit_query_search, - cgit_query_path, 1); + cgit_print_log(ctx.qry.sha1, ctx.qry.ofs, + cgit_max_commit_count, ctx.qry.grep, ctx.qry.search, + ctx.qry.path, 1); break; case CMD_TREE: - cgit_print_tree(cgit_query_sha1, cgit_query_path); + cgit_print_tree(ctx.qry.sha1, ctx.qry.path); break; case CMD_COMMIT: - cgit_print_commit(cgit_query_sha1); + cgit_print_commit(ctx.qry.sha1); break; case CMD_REFS: @@ -167,8 +167,8 @@ static void cgit_print_repo_page(struct cacheitem *item) break; case CMD_TAG: - cgit_print_tag(cgit_query_sha1); + cgit_print_tag(ctx.qry.sha1); break; case CMD_DIFF: - cgit_print_diff(cgit_query_sha1, cgit_query_sha2, cgit_query_path); + cgit_print_diff(ctx.qry.sha1, ctx.qry.sha2, ctx.qry.path); break; default: @@ -265,22 +265,22 @@ static void cgit_parse_args(int argc, const char **argv) } if (!strncmp(argv[i], "--query=", 8)) { - cgit_querystring = xstrdup(argv[i]+8); + ctx.qry.raw = xstrdup(argv[i]+8); } if (!strncmp(argv[i], "--repo=", 7)) { - cgit_query_repo = xstrdup(argv[i]+7); + ctx.qry.repo = xstrdup(argv[i]+7); } if (!strncmp(argv[i], "--page=", 7)) { - cgit_query_page = xstrdup(argv[i]+7); + ctx.qry.page = xstrdup(argv[i]+7); } if (!strncmp(argv[i], "--head=", 7)) { - cgit_query_head = xstrdup(argv[i]+7); - cgit_query_has_symref = 1; + ctx.qry.head = xstrdup(argv[i]+7); + ctx.qry.has_symref = 1; } if (!strncmp(argv[i], "--sha1=", 7)) { - cgit_query_sha1 = xstrdup(argv[i]+7); - cgit_query_has_sha1 = 1; + ctx.qry.sha1 = xstrdup(argv[i]+7); + ctx.qry.has_sha1 = 1; } if (!strncmp(argv[i], "--ofs=", 6)) { - cgit_query_ofs = atoi(argv[i]+6); + ctx.qry.ofs = atoi(argv[i]+6); } } @@ -304,7 +304,7 @@ int main(int argc, const char **argv) cgit_script_name = xstrdup(getenv("SCRIPT_NAME")); if (getenv("QUERY_STRING")) - cgit_querystring = xstrdup(getenv("QUERY_STRING")); + ctx.qry.raw = xstrdup(getenv("QUERY_STRING")); cgit_parse_args(argc, argv); - cgit_parse_query(cgit_querystring, cgit_querystring_cb); + cgit_parse_query(ctx.qry.raw, cgit_querystring_cb); if (!cgit_prepare_cache(&item)) return 0; @@ -124,8 +124,29 @@ struct reflist { }; +struct cgit_query { + int has_symref; + int has_sha1; + char *raw; + char *repo; + char *page; + char *search; + char *grep; + char *head; + char *sha1; + char *sha2; + char *path; + char *name; + int ofs; +}; + +struct cgit_context { + struct cgit_query qry; +}; + extern const char *cgit_version; extern struct repolist cgit_repolist; extern struct repoinfo *cgit_repo; +extern struct cgit_context ctx; extern int cgit_cmd; @@ -164,18 +185,4 @@ extern int cgit_max_repodesc_len; extern int cgit_max_commit_count; -extern int cgit_query_has_symref; -extern int cgit_query_has_sha1; - -extern char *cgit_querystring; -extern char *cgit_query_repo; -extern char *cgit_query_page; -extern char *cgit_query_search; -extern char *cgit_query_grep; -extern char *cgit_query_head; -extern char *cgit_query_sha1; -extern char *cgit_query_sha2; -extern char *cgit_query_path; -extern char *cgit_query_name; -extern int cgit_query_ofs; extern int htmlfd; @@ -150,5 +150,5 @@ void cgit_parse_url(const char *url) cgit_repo = cgit_get_repoinfo(url); if (cgit_repo) { - cgit_query_repo = cgit_repo->url; + ctx.qry.repo = cgit_repo->url; return; } @@ -164,13 +164,13 @@ void cgit_parse_url(const char *url) } - cgit_query_repo = cgit_repo->url; + ctx.qry.repo = cgit_repo->url; p = strchr(cmd + 1, '/'); if (p) { p[0] = '\0'; if (p[1]) - cgit_query_path = trim_end(p + 1, '/'); + ctx.qry.path = trim_end(p + 1, '/'); } cgit_cmd = cgit_get_cmd_index(cmd + 1); - cgit_query_page = xstrdup(cmd + 1); + ctx.qry.page = xstrdup(cmd + 1); return; } @@ -11,4 +11,5 @@ struct repolist cgit_repolist; struct repoinfo *cgit_repo; +struct cgit_context ctx; int cgit_cmd; @@ -50,22 +51,6 @@ int cgit_max_repodesc_len = 60; int cgit_max_commit_count = 50; -int cgit_query_has_symref = 0; -int cgit_query_has_sha1 = 0; - -char *cgit_querystring = NULL; -char *cgit_query_repo = NULL; -char *cgit_query_page = NULL; -char *cgit_query_head = NULL; -char *cgit_query_search = NULL; -char *cgit_query_grep = NULL; -char *cgit_query_sha1 = NULL; -char *cgit_query_sha2 = NULL; -char *cgit_query_path = NULL; -char *cgit_query_name = NULL; -int cgit_query_ofs = 0; - int htmlfd = 0; - int cgit_get_cmd_index(const char *cmd) { @@ -240,30 +225,30 @@ void cgit_querystring_cb(const char *name, const char *value) { if (!strcmp(name,"r")) { - cgit_query_repo = xstrdup(value); + ctx.qry.repo = xstrdup(value); cgit_repo = cgit_get_repoinfo(value); } else if (!strcmp(name, "p")) { - cgit_query_page = xstrdup(value); + ctx.qry.page = xstrdup(value); cgit_cmd = cgit_get_cmd_index(value); } else if (!strcmp(name, "url")) { cgit_parse_url(value); } else if (!strcmp(name, "qt")) { - cgit_query_grep = xstrdup(value); + ctx.qry.grep = xstrdup(value); } else if (!strcmp(name, "q")) { - cgit_query_search = xstrdup(value); + ctx.qry.search = xstrdup(value); } else if (!strcmp(name, "h")) { - cgit_query_head = xstrdup(value); - cgit_query_has_symref = 1; + ctx.qry.head = xstrdup(value); + ctx.qry.has_symref = 1; } else if (!strcmp(name, "id")) { - cgit_query_sha1 = xstrdup(value); - cgit_query_has_sha1 = 1; + ctx.qry.sha1 = xstrdup(value); + ctx.qry.has_sha1 = 1; } else if (!strcmp(name, "id2")) { - cgit_query_sha2 = xstrdup(value); - cgit_query_has_sha1 = 1; + ctx.qry.sha2 = xstrdup(value); + ctx.qry.has_sha1 = 1; } else if (!strcmp(name, "ofs")) { - cgit_query_ofs = atoi(value); + ctx.qry.ofs = atoi(value); } else if (!strcmp(name, "path")) { - cgit_query_path = trim_end(value, '/'); + ctx.qry.path = trim_end(value, '/'); } else if (!strcmp(name, "name")) { - cgit_query_name = xstrdup(value); + ctx.qry.name = xstrdup(value); } } diff --git a/ui-commit.c b/ui-commit.c index bd55a33..3b0919b 100644 --- a/ui-commit.c +++ b/ui-commit.c @@ -76,5 +76,5 @@ void print_fileinfo(struct fileinfo *info) } htmlf("</td><td class='%s'>", class); - cgit_diff_link(info->new_path, NULL, NULL, cgit_query_head, curr_rev, + cgit_diff_link(info->new_path, NULL, NULL, ctx.qry.head, curr_rev, NULL, info->new_path); if (info->status == DIFF_STATUS_COPIED || info->status == DIFF_STATUS_RENAMED) @@ -144,5 +144,5 @@ void cgit_print_commit(char *hex) if (!hex) - hex = cgit_query_head; + hex = ctx.qry.head; curr_rev = hex; @@ -176,5 +176,5 @@ void cgit_print_commit(char *hex) tmp = xstrdup(hex); cgit_tree_link(sha1_to_hex(commit->tree->object.sha1), NULL, NULL, - cgit_query_head, tmp, NULL); + ctx.qry.head, tmp, NULL); html("</td></tr>\n"); for (p = commit->parents; p ; p = p->next) { @@ -189,7 +189,7 @@ void cgit_print_commit(char *hex) "<td colspan='2' class='sha1'>"); cgit_commit_link(sha1_to_hex(p->item->object.sha1), NULL, NULL, - cgit_query_head, sha1_to_hex(p->item->object.sha1)); + ctx.qry.head, sha1_to_hex(p->item->object.sha1)); html(" ("); - cgit_diff_link("diff", NULL, NULL, cgit_query_head, hex, + cgit_diff_link("diff", NULL, NULL, ctx.qry.head, hex, sha1_to_hex(p->item->object.sha1), NULL); html(")</td></tr>"); @@ -197,5 +197,5 @@ void cgit_print_commit(char *hex) if (cgit_repo->snapshots) { html("<tr><th>download</th><td colspan='2' class='sha1'>"); - cgit_print_snapshot_links(cgit_query_repo, cgit_query_head, + cgit_print_snapshot_links(ctx.qry.repo, ctx.qry.head, hex, cgit_repo->snapshots); html("</td></tr>"); @@ -219,5 +219,5 @@ void cgit_print_commit(char *hex) htmlf("%d files changed, %d insertions, %d deletions (", files, total_adds, total_rems); - cgit_diff_link("show diff", NULL, NULL, cgit_query_head, hex, + cgit_diff_link("show diff", NULL, NULL, ctx.qry.head, hex, NULL, NULL); html(")</div>"); @@ -72,5 +72,5 @@ static void header(unsigned char *sha1, char *path1, int mode1, html("<br/>--- a/"); if (mode1 != 0) - cgit_tree_link(path1, NULL, NULL, cgit_query_head, + cgit_tree_link(path1, NULL, NULL, ctx.qry.head, sha1_to_hex(old_rev_sha1), path1); else @@ -78,5 +78,5 @@ static void header(unsigned char *sha1, char *path1, int mode1, html("<br/>+++ b/"); if (mode2 != 0) - cgit_tree_link(path2, NULL, NULL, cgit_query_head, + cgit_tree_link(path2, NULL, NULL, ctx.qry.head, sha1_to_hex(new_rev_sha1), path2); else @@ -108,5 +108,5 @@ void cgit_print_diff(const char *new_rev, const char *old_rev, const char *prefi if (!new_rev) - new_rev = cgit_query_head; + new_rev = ctx.qry.head; get_sha1(new_rev, new_rev_sha1); type = sha1_object_info(new_rev_sha1, &size); @@ -38,5 +38,5 @@ void print_commit(struct commit *commit) cgit_print_age(commit->date, TM_WEEK * 2, FMT_SHORTDATE); html("</td><td>"); - cgit_commit_link(info->subject, NULL, NULL, cgit_query_head, + cgit_commit_link(info->subject, NULL, NULL, ctx.qry.head, sha1_to_hex(commit->object.sha1)); if (cgit_repo->enable_log_filecount) { @@ -68,5 +68,5 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern if (!tip) - argv[1] = cgit_query_head; + argv[1] = ctx.qry.head; if (grep && pattern && (!strcmp(grep, "grep") || @@ -124,15 +124,15 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern html("<div class='pager'>"); if (ofs > 0) { - cgit_log_link("[prev]", NULL, NULL, cgit_query_head, - cgit_query_sha1, cgit_query_path, - ofs - cnt, cgit_query_grep, - cgit_query_search); + cgit_log_link("[prev]", NULL, NULL, ctx.qry.head, + ctx.qry.sha1, ctx.qry.path, + ofs - cnt, ctx.qry.grep, + ctx.qry.search); html(" "); } if ((commit = get_revision(&rev)) != NULL) { - cgit_log_link("[next]", NULL, NULL, cgit_query_head, - cgit_query_sha1, cgit_query_path, - ofs + cnt, cgit_query_grep, - cgit_query_search); + cgit_log_link("[next]", NULL, NULL, ctx.qry.head, + ctx.qry.sha1, ctx.qry.path, + ofs + cnt, ctx.qry.grep, + ctx.qry.search); } html("</div>"); @@ -77,5 +77,5 @@ void cgit_print_patch(char *hex, struct cacheitem *item) if (!hex) - hex = cgit_query_head; + hex = ctx.qry.head; if (get_sha1(hex, sha1)) { @@ -17,7 +17,7 @@ void cgit_print_refs() html("<table class='list nowrap'>"); - if (cgit_query_path && !strncmp(cgit_query_path, "heads", 5)) + if (ctx.qry.path && !strncmp(ctx.qry.path, "heads", 5)) cgit_print_branches(0); - else if (cgit_query_path && !strncmp(cgit_query_path, "tags", 4)) + else if (ctx.qry.path && !strncmp(ctx.qry.path, "tags", 4)) cgit_print_tags(0); else { diff --git a/ui-shared.c b/ui-shared.c index 60aa2e3..6a41fb0 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -113,8 +113,8 @@ char *cgit_currurl() if (!cgit_virtual_root) return cgit_script_name; - else if (cgit_query_page) - return fmt("%s/%s/%s/", cgit_virtual_root, cgit_query_repo, cgit_query_page); - else if (cgit_query_repo) - return fmt("%s/%s/", cgit_virtual_root, cgit_query_repo); + else if (ctx.qry.page) + return fmt("%s/%s/%s/", cgit_virtual_root, ctx.qry.repo, ctx.qry.page); + else if (ctx.qry.repo) + return fmt("%s/%s/", cgit_virtual_root, ctx.qry.repo); else return fmt("%s/", cgit_virtual_root); @@ -180,5 +180,5 @@ static void reporevlink(char *page, char *name, char *title, char *class, delim = repolink(title, class, page, head, path); - if (rev && strcmp(rev, cgit_query_head)) { + if (rev && strcmp(rev, ctx.qry.head)) { html(delim); html("id="); @@ -202,5 +202,5 @@ void cgit_log_link(char *name, char *title, char *class, char *head, delim = repolink(title, class, "log", head, path); - if (rev && strcmp(rev, cgit_query_head)) { + if (rev && strcmp(rev, ctx.qry.head)) { html(delim); html("id="); @@ -257,5 +257,5 @@ void cgit_diff_link(char *name, char *title, char *class, char *head, delim = repolink(title, class, "diff", head, path); - if (new_rev && strcmp(new_rev, cgit_query_head)) { + if (new_rev && strcmp(new_rev, ctx.qry.head)) { html(delim); html("id="); @@ -285,5 +285,5 @@ void cgit_object_link(struct object *obj) if (obj->type == OBJ_COMMIT) { cgit_commit_link(fmt("commit %s", sha1_to_hex(obj->sha1)), NULL, NULL, - cgit_query_head, sha1_to_hex(obj->sha1)); + ctx.qry.head, sha1_to_hex(obj->sha1)); return; } else if (obj->type == OBJ_TREE) { @@ -298,5 +298,5 @@ void cgit_object_link(struct object *obj) } - url = cgit_pageurl(cgit_query_repo, page, + url = cgit_pageurl(ctx.qry.repo, page, fmt("%s=%s", arg, sha1_to_hex(obj->sha1))); html_link_open(url, NULL, NULL); @@ -393,5 +393,5 @@ int print_branch_option(const char *refname, const unsigned char *sha1, { char *name = (char *)refname; - html_option(name, name, cgit_query_head); + html_option(name, name, ctx.qry.head); return 0; } @@ -427,5 +427,5 @@ int print_archive_ref(const char *refname, const unsigned char *sha1, *header = 1; } - url = cgit_pageurl(cgit_query_repo, "blob", + url = cgit_pageurl(ctx.qry.repo, "blob", fmt("id=%s&path=%s", sha1_to_hex(fileid), buf)); @@ -441,23 +441,23 @@ void add_hidden_formfields(int incl_head, int incl_search, char *page) if (!cgit_virtual_root) { - url = fmt("%s/%s", cgit_query_repo, page); - if (cgit_query_path) - url = fmt("%s/%s", url, cgit_query_path); + url = fmt("%s/%s", ctx.qry.repo, page); + if (ctx.qry.path) + url = fmt("%s/%s", url, ctx.qry.path); html_hidden("url", url); } - if (incl_head && strcmp(cgit_query_head, cgit_repo->defbranch)) - html_hidden("h", cgit_query_head); + if (incl_head && strcmp(ctx.qry.head, cgit_repo->defbranch)) + html_hidden("h", ctx.qry.head); - if (cgit_query_sha1) - html_hidden("id", cgit_query_sha1); - if (cgit_query_sha2) - html_hidden("id2", cgit_query_sha2); + if (ctx.qry.sha1) + html_hidden("id", ctx.qry.sha1); + if (ctx.qry.sha2) + html_hidden("id2", ctx.qry.sha2); if (incl_search) { - if (cgit_query_grep) - html_hidden("qt", cgit_query_grep); - if (cgit_query_search) - html_hidden("q", cgit_query_search); + if (ctx.qry.grep) + html_hidden("qt", ctx.qry.grep); + if (ctx.qry.search) + html_hidden("q", ctx.qry.search); } } @@ -477,5 +477,5 @@ void cgit_print_pageheader(char *title, int show_search) cgit_logo); html("</td></tr>\n<tr><td class='sidebar'>\n"); - if (cgit_query_repo) { + if (ctx.qry.repo) { html("<h1 class='first'>"); html_txt(strrpart(cgit_repo->name, 20)); @@ -487,16 +487,16 @@ void cgit_print_pageheader(char *title, int show_search) } html("<h1>navigate</h1>\n"); - reporevlink(NULL, "summary", NULL, "menu", cgit_query_head, + reporevlink(NULL, "summary", NULL, "menu", ctx.qry.head, NULL, NULL); - cgit_log_link("log", NULL, "menu", cgit_query_head, NULL, NULL, + cgit_log_link("log", NULL, "menu", ctx.qry.head, NULL, NULL, 0, NULL, NULL); - cgit_tree_link("tree", NULL, "menu", cgit_query_head, - cgit_query_sha1, NULL); - cgit_commit_link("commit", NULL, "menu", cgit_query_head, - cgit_query_sha1); - cgit_diff_link("diff", NULL, "menu", cgit_query_head, - cgit_query_sha1, cgit_query_sha2, NULL); - cgit_patch_link("patch", NULL, "menu", cgit_query_head, - cgit_query_sha1); + cgit_tree_link("tree", NULL, "menu", ctx.qry.head, + ctx.qry.sha1, NULL); + cgit_commit_link("commit", NULL, "menu", ctx.qry.head, + ctx.qry.sha1); + cgit_diff_link("diff", NULL, "menu", ctx.qry.head, + ctx.qry.sha1, ctx.qry.sha2, NULL); + cgit_patch_link("patch", NULL, "menu", ctx.qry.head, + ctx.qry.sha1); for_each_ref(print_archive_ref, &header); @@ -520,8 +520,8 @@ void cgit_print_pageheader(char *title, int show_search) html("<h1>branch</h1>\n"); html("<form method='get' action=''>\n"); - add_hidden_formfields(0, 1, cgit_query_page); + add_hidden_formfields(0, 1, ctx.qry.page); // html("<table summary='branch selector' class='grid'><tr><td id='branch-dropdown-cell'>"); html("<select name='h' onchange='this.form.submit();'>\n"); - for_each_branch_ref(print_branch_option, cgit_query_head); + for_each_branch_ref(print_branch_option, ctx.qry.head); html("</select>\n"); // html("</td><td>"); @@ -533,15 +533,15 @@ void cgit_print_pageheader(char *title, int show_search) html("<form method='get' action='"); if (cgit_virtual_root) - html_attr(cgit_fileurl(cgit_query_repo, "log", - cgit_query_path, NULL)); + html_attr(cgit_fileurl(ctx.qry.repo, "log", + ctx.qry.path, NULL)); html("'>\n"); add_hidden_formfields(1, 0, "log"); html("<select name='qt'>\n"); - html_option("grep", "log msg", cgit_query_grep); - html_option("author", "author", cgit_query_grep); - html_option("committer", "committer", cgit_query_grep); + html_option("grep", "log msg", ctx.qry.grep); + html_option("author", "author", ctx.qry.grep); + html_option("committer", "committer", ctx.qry.grep); html("</select>\n"); html("<input class='txt' type='text' name='q' value='"); - html_attr(cgit_query_search); + html_attr(ctx.qry.search); html("'/>\n"); html("</form>\n"); diff --git a/ui-summary.c b/ui-summary.c index b96414e..bbd4464 100644 --- a/ui-summary.c +++ b/ui-summary.c @@ -95,5 +95,5 @@ static int print_tag(struct refinfo *ref) return 1; html("<tr><td>"); - url = cgit_pageurl(cgit_query_repo, "tag", + url = cgit_pageurl(ctx.qry.repo, "tag", fmt("id=%s", name)); html_link_open(url, NULL, NULL); @@ -124,5 +124,5 @@ static void print_refs_link(char *path) { html("<tr class='nohover'><td colspan='4'>"); - cgit_refs_link("[...]", NULL, NULL, cgit_query_head, NULL, path); + cgit_refs_link("[...]", NULL, NULL, ctx.qry.head, NULL, path); html("</td></tr>"); } @@ -189,5 +189,5 @@ void cgit_print_summary() } if (cgit_summary_log > 0) - cgit_print_log(cgit_query_head, 0, cgit_summary_log, NULL, + cgit_print_log(ctx.qry.head, 0, cgit_summary_log, NULL, NULL, NULL, 0); html("<table summary='repository info' class='list nowrap'>"); @@ -35,5 +35,5 @@ static void print_object(const unsigned char *sha1, char *path) html(" blob: <a href='"); - html_attr(cgit_pageurl(cgit_query_repo, "blob", fmt("id=%s", sha1_to_hex(sha1)))); + html_attr(cgit_pageurl(ctx.qry.repo, "blob", fmt("id=%s", sha1_to_hex(sha1)))); htmlf("'>%s</a>",sha1_to_hex(sha1)); @@ -68,6 +68,6 @@ static int ls_item(const unsigned char *sha1, const char *base, int baselen, name = xstrdup(pathname); - fullpath = fmt("%s%s%s", cgit_query_path ? cgit_query_path : "", - cgit_query_path ? "/" : "", name); + fullpath = fmt("%s%s%s", ctx.qry.path ? ctx.qry.path : "", + ctx.qry.path ? "/" : "", name); type = sha1_object_info(sha1, &size); @@ -91,8 +91,8 @@ static int ls_item(const unsigned char *sha1, const char *base, int baselen, html("</a>"); } else if (S_ISDIR(mode)) { - cgit_tree_link(name, NULL, "ls-dir", cgit_query_head, + cgit_tree_link(name, NULL, "ls-dir", ctx.qry.head, curr_rev, fullpath); } else { - cgit_tree_link(name, NULL, "ls-blob", cgit_query_head, + cgit_tree_link(name, NULL, "ls-blob", ctx.qry.head, curr_rev, fullpath); } @@ -100,5 +100,5 @@ static int ls_item(const unsigned char *sha1, const char *base, int baselen, html("<td>"); - cgit_log_link("log", NULL, "button", cgit_query_head, curr_rev, + cgit_log_link("log", NULL, "button", ctx.qry.head, curr_rev, fullpath, 0, NULL, NULL); html("</td></tr>\n"); @@ -154,8 +154,8 @@ static int walk_tree(const unsigned char *sha1, const char *base, int baselen, memcpy(buffer, base, baselen); strcpy(buffer+baselen, pathname); - url = cgit_pageurl(cgit_query_repo, "tree", + url = cgit_pageurl(ctx.qry.repo, "tree", fmt("h=%s&path=%s", curr_rev, buffer)); html("/"); - cgit_tree_link(xstrdup(pathname), NULL, NULL, cgit_query_head, + cgit_tree_link(xstrdup(pathname), NULL, NULL, ctx.qry.head, curr_rev, buffer); @@ -189,5 +189,5 @@ void cgit_print_tree(const char *rev, char *path) if (!rev) - rev = cgit_query_head; + rev = ctx.qry.head; curr_rev = xstrdup(rev); @@ -203,5 +203,5 @@ void cgit_print_tree(const char *rev, char *path) html("path: <a href='"); - html_attr(cgit_pageurl(cgit_query_repo, "tree", fmt("h=%s", rev))); + html_attr(cgit_pageurl(ctx.qry.repo, "tree", fmt("h=%s", rev))); html("'>root</a>"); |