author | Lars Hjemli <hjemli@gmail.com> | 2007-06-17 11:57:51 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2007-06-17 11:57:51 (UTC) |
commit | 48c487d72daef7e71683a85f775db8d36ab20341 (patch) (unidiff) | |
tree | 8770334d7c77bd3e81f42ee12550e6db5febd4d2 /ui-shared.c | |
parent | 426032f767763b46f462de51d1ebded34f671d79 (diff) | |
download | cgit-48c487d72daef7e71683a85f775db8d36ab20341.zip cgit-48c487d72daef7e71683a85f775db8d36ab20341.tar.gz cgit-48c487d72daef7e71683a85f775db8d36ab20341.tar.bz2 |
Add git_log_link() and fix bug in generic repolink function
The generic repolink function compared head with cgit_query_head, which
almost always would be the same pointer. The test now compares with
repo.defbranch, which is the wanted behavour.
Bug discovered while adding cgit_log_link(), so this commit also contain
that change.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | ui-shared.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/ui-shared.c b/ui-shared.c index 657e8af..64ee79c 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
@@ -114,57 +114,69 @@ static char *repolink(char *title, char *class, char *page, char *head, | |||
114 | html(page); | 114 | html(page); |
115 | html("/"); | 115 | html("/"); |
116 | if (path) | 116 | if (path) |
117 | html_attr(path); | 117 | html_attr(path); |
118 | } else { | 118 | } else { |
119 | html(cgit_script_name); | 119 | html(cgit_script_name); |
120 | html("?url="); | 120 | html("?url="); |
121 | html_attr(cgit_repo->url); | 121 | html_attr(cgit_repo->url); |
122 | if (cgit_repo->url[strlen(cgit_repo->url) - 1] != '/') | 122 | if (cgit_repo->url[strlen(cgit_repo->url) - 1] != '/') |
123 | html("/"); | 123 | html("/"); |
124 | html(page); | 124 | html(page); |
125 | html("/"); | 125 | html("/"); |
126 | if (path) | 126 | if (path) |
127 | html_attr(path); | 127 | html_attr(path); |
128 | delim = "&"; | 128 | delim = "&"; |
129 | } | 129 | } |
130 | if (head && strcmp(head, cgit_query_head)) { | 130 | if (head && strcmp(head, cgit_repo->defbranch)) { |
131 | html(delim); | 131 | html(delim); |
132 | html("h="); | 132 | html("h="); |
133 | html_attr(head); | 133 | html_attr(head); |
134 | delim = "&"; | 134 | delim = "&"; |
135 | } | 135 | } |
136 | return fmt("%s", delim); | 136 | return fmt("%s", delim); |
137 | } | 137 | } |
138 | 138 | ||
139 | void cgit_tree_link(char *name, char *title, char *class, char *head, | 139 | static char *reporevlink(char *page, char *name, char *title, char *class, |
140 | char *rev, char *path) | 140 | char *head, char *rev, char *path) |
141 | { | 141 | { |
142 | char *delim; | 142 | char *delim; |
143 | 143 | ||
144 | delim = repolink(title, class, "tree", head, path); | 144 | delim = repolink(title, class, page, head, path); |
145 | if (rev && strcmp(rev, cgit_query_head)) { | 145 | if (rev && strcmp(rev, cgit_query_head)) { |
146 | html(delim); | 146 | html(delim); |
147 | html("id="); | 147 | html("id="); |
148 | html_attr(rev); | 148 | html_attr(rev); |
149 | } | 149 | } |
150 | html("'>"); | 150 | html("'>"); |
151 | html_txt(name); | 151 | html_txt(name); |
152 | html("</a>"); | 152 | html("</a>"); |
153 | } | 153 | } |
154 | 154 | ||
155 | void cgit_tree_link(char *name, char *title, char *class, char *head, | ||
156 | char *rev, char *path) | ||
157 | { | ||
158 | reporevlink("tree", name, title, class, head, rev, path); | ||
159 | } | ||
160 | |||
161 | void cgit_log_link(char *name, char *title, char *class, char *head, | ||
162 | char *rev, char *path) | ||
163 | { | ||
164 | reporevlink("log", name, title, class, head, rev, path); | ||
165 | } | ||
166 | |||
155 | void cgit_print_date(time_t secs, char *format) | 167 | void cgit_print_date(time_t secs, char *format) |
156 | { | 168 | { |
157 | char buf[64]; | 169 | char buf[64]; |
158 | struct tm *time; | 170 | struct tm *time; |
159 | 171 | ||
160 | time = gmtime(&secs); | 172 | time = gmtime(&secs); |
161 | strftime(buf, sizeof(buf)-1, format, time); | 173 | strftime(buf, sizeof(buf)-1, format, time); |
162 | html_txt(buf); | 174 | html_txt(buf); |
163 | } | 175 | } |
164 | 176 | ||
165 | void cgit_print_age(time_t t, time_t max_relative, char *format) | 177 | void cgit_print_age(time_t t, time_t max_relative, char *format) |
166 | { | 178 | { |
167 | time_t now, secs; | 179 | time_t now, secs; |
168 | 180 | ||
169 | time(&now); | 181 | time(&now); |
170 | secs = now - t; | 182 | secs = now - t; |