diff options
Diffstat (limited to 'cmd.c')
-rw-r--r-- | cmd.c | 24 |
1 files changed, 9 insertions, 15 deletions
@@ -38,21 +38,17 @@ static void atom_fn(void) | |||
38 | 38 | ||
39 | static void about_fn(void) | 39 | static 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 | ||
47 | static 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 | |||
56 | static void blob_fn(void) | 52 | static 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), |