author | Jonathan Bastien-Filiatrault <joe@x2a.org> | 2007-10-26 22:10:26 (UTC) |
---|---|---|
committer | Jonathan Bastien-Filiatrault <joe@x2a.org> | 2007-11-05 23:13:30 (UTC) |
commit | aa5cc328f4894ba6972842b4edbca3017f169050 (patch) (side-by-side diff) | |
tree | c8eb7be0f9186d3599a7d36907f473a550fd7529 | |
parent | 3845e177e4e0b231efb6fda0ac3cd3a2d8f34d4b (diff) | |
download | cgit-aa5cc328f4894ba6972842b4edbca3017f169050.zip cgit-aa5cc328f4894ba6972842b4edbca3017f169050.tar.gz cgit-aa5cc328f4894ba6972842b4edbca3017f169050.tar.bz2 |
Set msg_encoding according to the header.
-rw-r--r-- | parsing.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -213,48 +213,56 @@ struct commitinfo *cgit_parse_commit(struct commit *commit) p += 48; // "parent " + hex[40] + "\n" if (!strncmp(p, "author ", 7)) { p += 7; t = strchr(p, '<') - 1; ret->author = substr(p, t); p = t; t = strchr(t, '>') + 1; ret->author_email = substr(p, t); ret->author_date = atol(++t); p = strchr(t, '\n') + 1; } if (!strncmp(p, "committer ", 9)) { p += 9; t = strchr(p, '<') - 1; ret->committer = substr(p, t); p = t; t = strchr(t, '>') + 1; ret->committer_email = substr(p, t); ret->committer_date = atol(++t); p = strchr(t, '\n') + 1; } + if (!strncmp(p, "encoding ", 9)) { + p += 9; + t = strchr(p, '\n') + 1; + ret->msg_encoding = substr(p, t); + p = t; + } else + ret->msg_encoding = xstrdup(PAGE_ENCODING); + while (*p && (*p != '\n')) p = strchr(p, '\n') + 1; // skip unknown header fields while (*p == '\n') p = strchr(p, '\n') + 1; t = strchr(p, '\n'); if (t) { if (*t == '\0') ret->subject = "** empty **"; else ret->subject = substr(p, t); p = t + 1; while (*p == '\n') p = strchr(p, '\n') + 1; ret->msg = xstrdup(p); } else ret->subject = substr(p, p+strlen(p)); return ret; } |