about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJason A. Donenfeld2015-08-14 15:54:32 +0200
committerJason A. Donenfeld2015-08-14 15:54:32 +0200
commit03de473354dc8c17a3b23a973b5cc67752ad20cb (patch)
tree9ec8e24b626018876eb266c24464ff2e0ae0dde1
parentui-shared: cache errors for "dynamic TTL" (diff)
downloadcgit-03de473354dc8c17a3b23a973b5cc67752ad20cb.tar.gz
cgit-03de473354dc8c17a3b23a973b5cc67752ad20cb.zip
cmd: no need for pre function hook now
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r--cgit.c3
-rw-r--r--cmd.c24
-rw-r--r--cmd.h2
3 files changed, 9 insertions, 20 deletions
diff --git a/cgit.c b/cgit.c index 7271412..28a2f14 100644 --- a/cgit.c +++ b/cgit.c
@@ -733,9 +733,6 @@ static void process_request(void)
733 if (ctx.repo && prepare_repo_cmd()) 733 if (ctx.repo && prepare_repo_cmd())
734 return; 734 return;
735 735
736 if (cmd->pre)
737 cmd->pre();
738
739 cmd->fn(); 736 cmd->fn();
740} 737}
741 738
diff --git a/cmd.c b/cmd.c index 05494fe..20c80b0 100644 --- a/cmd.c +++ b/cmd.c
@@ -38,21 +38,17 @@ static void atom_fn(void)
38 38
39static void about_fn(void) 39static void about_fn(void)
40{ 40{
41 if (ctx.repo) 41 if (ctx.repo) {
42 cgit_print_repo_readme(ctx.qry.path); 42 if (!ctx.qry.path &&
43 else 43 ctx.qry.url[strlen(ctx.qry.url) - 1] != '/' &&
44 ctx.env.path_info[strlen(ctx.env.path_info) - 1] != '/')
45 cgit_redirect(fmtalloc("%s/", cgit_currenturl()), true);
46 else
47 cgit_print_repo_readme(ctx.qry.path);
48 } else
44 cgit_print_site_readme(); 49 cgit_print_site_readme();
45} 50}
46 51
47static void about_pre(void)
48{
49 if (ctx.repo &&
50 !ctx.qry.path &&
51 ctx.qry.url[strlen(ctx.qry.url) - 1] != '/' &&
52 ctx.env.path_info[strlen(ctx.env.path_info) - 1] != '/')
53 cgit_redirect(fmtalloc("%s/", cgit_currenturl()), true);
54}
55
56static void blob_fn(void) 52static void blob_fn(void)
57{ 53{
58 cgit_print_blob(ctx.qry.sha1, ctx.qry.path, ctx.qry.head, 0); 54 cgit_print_blob(ctx.qry.sha1, ctx.qry.path, ctx.qry.head, 0);
@@ -145,8 +141,6 @@ static void tree_fn(void)
145 cgit_print_tree(ctx.qry.sha1, ctx.qry.path); 141 cgit_print_tree(ctx.qry.sha1, ctx.qry.path);
146} 142}
147 143
148#define def_cmp(name, want_repo, want_vpath, is_clone) \
149 {#name, name##_fn, name##_pre, want_repo, want_vpath, is_clone}
150#define def_cmd(name, want_repo, want_vpath, is_clone) \ 144#define def_cmd(name, want_repo, want_vpath, is_clone) \
151 {#name, name##_fn, NULL, want_repo, want_vpath, is_clone} 145 {#name, name##_fn, NULL, want_repo, want_vpath, is_clone}
152 146
@@ -155,7 +149,7 @@ struct cgit_cmd *cgit_get_cmd(void)
155 static struct cgit_cmd cmds[] = { 149 static struct cgit_cmd cmds[] = {
156 def_cmd(HEAD, 1, 0, 1), 150 def_cmd(HEAD, 1, 0, 1),
157 def_cmd(atom, 1, 0, 0), 151 def_cmd(atom, 1, 0, 0),
158 def_cmp(about, 0, 0, 0), 152 def_cmd(about, 0, 0, 0),
159 def_cmd(blob, 1, 0, 0), 153 def_cmd(blob, 1, 0, 0),
160 def_cmd(commit, 1, 1, 0), 154 def_cmd(commit, 1, 1, 0),
161 def_cmd(diff, 1, 1, 0), 155 def_cmd(diff, 1, 1, 0),
diff --git a/cmd.h b/cmd.h index 1a98089..6249b1d 100644 --- a/cmd.h +++ b/cmd.h
@@ -2,12 +2,10 @@
2#define CMD_H 2#define CMD_H
3 3
4typedef void (*cgit_cmd_fn)(void); 4typedef void (*cgit_cmd_fn)(void);
5typedef void (*cgit_cmd_pre_fn)(void);
6 5
7struct cgit_cmd { 6struct cgit_cmd {
8 const char *name; 7 const char *name;
9 cgit_cmd_fn fn; 8 cgit_cmd_fn fn;
10 cgit_cmd_pre_fn pre;
11 unsigned int want_repo:1, 9 unsigned int want_repo:1,
12 want_vpath:1, 10 want_vpath:1,
13 is_clone:1; 11 is_clone:1;