author | Jonathan Bastien-Filiatrault <joe@x2a.org> | 2007-10-26 22:13:41 (UTC) |
---|---|---|
committer | Jonathan Bastien-Filiatrault <joe@x2a.org> | 2007-11-05 23:13:31 (UTC) |
commit | 7858a309d7671109950ec940f893c2d112d36b99 (patch) (unidiff) | |
tree | 676723bafc103e232341aa05be4d57ed773b9feb /parsing.c | |
parent | af0819830445e39584a0137034562086a55deaf2 (diff) | |
download | cgit-7858a309d7671109950ec940f893c2d112d36b99.zip cgit-7858a309d7671109950ec940f893c2d112d36b99.tar.gz cgit-7858a309d7671109950ec940f893c2d112d36b99.tar.bz2 |
Convert subject and message with iconv_msg.
-rw-r--r-- | parsing.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -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; |