Unidiff1 files changed, 14 insertions, 0 deletions
|
diff --git a/parsing.c b/parsing.c index f156c12..c731084 100644 --- a/ parsing.c+++ b/ parsing.c |
|
@@ -307,32 +307,46 @@ struct commitinfo *cgit_parse_commit(struct commit *commit) |
307 | p = strchr(p, '\n') + 1; |
307 | p = strchr(p, '\n') + 1; |
308 | |
308 | |
309 | t = strchr(p, '\n'); |
309 | t = strchr(p, '\n'); |
310 | if (t) { |
310 | if (t) { |
311 | if (*t == '\0') |
311 | if (*t == '\0') |
312 | ret->subject = "** empty **"; |
312 | ret->subject = "** empty **"; |
313 | else |
313 | else |
314 | ret->subject = substr(p, t); |
314 | ret->subject = substr(p, t); |
315 | p = t + 1; |
315 | p = t + 1; |
316 | |
316 | |
317 | while (*p == '\n') |
317 | while (*p == '\n') |
318 | p = strchr(p, '\n') + 1; |
318 | p = strchr(p, '\n') + 1; |
319 | ret->msg = xstrdup(p); |
319 | ret->msg = xstrdup(p); |
320 | } else |
320 | } else |
321 | ret->subject = substr(p, p+strlen(p)); |
321 | ret->subject = substr(p, p+strlen(p)); |
322 | |
322 | |
| |
323 | if(strcmp(ret->msg_encoding, PAGE_ENCODING)) { |
| |
324 | t = iconv_msg(ret->subject, ret->msg_encoding); |
| |
325 | if(t) { |
| |
326 | free(ret->subject); |
| |
327 | ret->subject = t; |
| |
328 | } |
| |
329 | |
| |
330 | t = iconv_msg(ret->msg, ret->msg_encoding); |
| |
331 | if(t) { |
| |
332 | free(ret->msg); |
| |
333 | ret->msg = t; |
| |
334 | } |
| |
335 | } |
| |
336 | |
323 | return ret; |
337 | return ret; |
324 | } |
338 | } |
325 | |
339 | |
326 | |
340 | |
327 | struct taginfo *cgit_parse_tag(struct tag *tag) |
341 | struct taginfo *cgit_parse_tag(struct tag *tag) |
328 | { |
342 | { |
329 | void *data; |
343 | void *data; |
330 | enum object_type type; |
344 | enum object_type type; |
331 | unsigned long size; |
345 | unsigned long size; |
332 | char *p, *t; |
346 | char *p, *t; |
333 | struct taginfo *ret; |
347 | struct taginfo *ret; |
334 | |
348 | |
335 | data = read_sha1_file(tag->object.sha1, &type, &size); |
349 | data = read_sha1_file(tag->object.sha1, &type, &size); |
336 | if (!data || type != OBJ_TAG) { |
350 | if (!data || type != OBJ_TAG) { |
337 | free(data); |
351 | free(data); |
338 | return 0; |
352 | return 0; |
|