mirror of
https://git.zx2c4.com/cgit
synced 2025-07-01 05:44:30 +02:00
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>
This commit is contained in:
parent
e5ed227ef0
commit
d14d77fe95
13 changed files with 156 additions and 164 deletions
43
shared.c
43
shared.c
|
@ -10,6 +10,7 @@
|
|||
|
||||
struct repolist cgit_repolist;
|
||||
struct repoinfo *cgit_repo;
|
||||
struct cgit_context ctx;
|
||||
int cgit_cmd;
|
||||
|
||||
const char *cgit_version = CGIT_VERSION;
|
||||
|
@ -49,24 +50,8 @@ int cgit_max_msg_len = 60;
|
|||
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)
|
||||
{
|
||||
static char *cmds[] = {"log", "commit", "diff", "tree", "blob",
|
||||
|
@ -239,32 +224,32 @@ void cgit_global_config_cb(const char *name, const char *value)
|
|||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue