|
diff --git a/shared.c b/shared.c index e06df91..a04c4dc 100644 --- a/ shared.c+++ b/ shared.c |
|
@@ -244,48 +244,50 @@ void cgit_querystring_cb(const char *name, const char *value) |
244 | cgit_query_head = xstrdup(value); |
244 | cgit_query_head = xstrdup(value); |
245 | cgit_query_has_symref = 1; |
245 | cgit_query_has_symref = 1; |
246 | } else if (!strcmp(name, "id")) { |
246 | } else if (!strcmp(name, "id")) { |
247 | cgit_query_sha1 = xstrdup(value); |
247 | cgit_query_sha1 = xstrdup(value); |
248 | cgit_query_has_sha1 = 1; |
248 | cgit_query_has_sha1 = 1; |
249 | } else if (!strcmp(name, "id2")) { |
249 | } else if (!strcmp(name, "id2")) { |
250 | cgit_query_sha2 = xstrdup(value); |
250 | cgit_query_sha2 = xstrdup(value); |
251 | cgit_query_has_sha1 = 1; |
251 | cgit_query_has_sha1 = 1; |
252 | } else if (!strcmp(name, "ofs")) { |
252 | } else if (!strcmp(name, "ofs")) { |
253 | cgit_query_ofs = atoi(value); |
253 | cgit_query_ofs = atoi(value); |
254 | } else if (!strcmp(name, "path")) { |
254 | } else if (!strcmp(name, "path")) { |
255 | cgit_query_path = trim_end(value, '/'); |
255 | cgit_query_path = trim_end(value, '/'); |
256 | } else if (!strcmp(name, "name")) { |
256 | } else if (!strcmp(name, "name")) { |
257 | cgit_query_name = xstrdup(value); |
257 | cgit_query_name = xstrdup(value); |
258 | } |
258 | } |
259 | } |
259 | } |
260 | |
260 | |
261 | void *cgit_free_commitinfo(struct commitinfo *info) |
261 | void *cgit_free_commitinfo(struct commitinfo *info) |
262 | { |
262 | { |
263 | free(info->author); |
263 | free(info->author); |
264 | free(info->author_email); |
264 | free(info->author_email); |
265 | free(info->committer); |
265 | free(info->committer); |
266 | free(info->committer_email); |
266 | free(info->committer_email); |
267 | free(info->subject); |
267 | free(info->subject); |
| |
268 | free(info->msg); |
| |
269 | free(info->msg_encoding); |
268 | free(info); |
270 | free(info); |
269 | return NULL; |
271 | return NULL; |
270 | } |
272 | } |
271 | |
273 | |
272 | int hextoint(char c) |
274 | int hextoint(char c) |
273 | { |
275 | { |
274 | if (c >= 'a' && c <= 'f') |
276 | if (c >= 'a' && c <= 'f') |
275 | return 10 + c - 'a'; |
277 | return 10 + c - 'a'; |
276 | else if (c >= 'A' && c <= 'F') |
278 | else if (c >= 'A' && c <= 'F') |
277 | return 10 + c - 'A'; |
279 | return 10 + c - 'A'; |
278 | else if (c >= '0' && c <= '9') |
280 | else if (c >= '0' && c <= '9') |
279 | return c - '0'; |
281 | return c - '0'; |
280 | else |
282 | else |
281 | return -1; |
283 | return -1; |
282 | } |
284 | } |
283 | |
285 | |
284 | char *trim_end(const char *str, char c) |
286 | char *trim_end(const char *str, char c) |
285 | { |
287 | { |
286 | int len; |
288 | int len; |
287 | char *s, *t; |
289 | char *s, *t; |
288 | |
290 | |
289 | if (str == NULL) |
291 | if (str == NULL) |
290 | return NULL; |
292 | return NULL; |
291 | t = (char *)str; |
293 | t = (char *)str; |
|