summaryrefslogtreecommitdiffabout
path: root/parsing.c
authorRémi Lagacé <rlagace@cld.ca>2010-07-13 17:15:09 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2010-07-13 17:24:55 (UTC)
commit73ac0fb6f217addbcd7878828407392418c973de (patch) (side-by-side diff)
tree022166308396b5ef351f98a44390248f08cfd268 /parsing.c
parentf072bc55b08675db93b2f892016e83d9f975dea2 (diff)
downloadcgit-73ac0fb6f217addbcd7878828407392418c973de.zip
cgit-73ac0fb6f217addbcd7878828407392418c973de.tar.gz
cgit-73ac0fb6f217addbcd7878828407392418c973de.tar.bz2
Reencode author and committer
When a commit has a specific encoding, this encoding also applies to the author and committer name and email. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'parsing.c') (more/less context) (ignore whitespace changes)
-rw-r--r--parsing.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/parsing.c b/parsing.c
index f3f3b15..f37c49d 100644
--- a/parsing.c
+++ b/parsing.c
@@ -177,32 +177,36 @@ struct commitinfo *cgit_parse_commit(struct commit *commit)
t = strchr(p, '\n');
if (t) {
ret->subject = substr(p, t);
p = t + 1;
while (p && *p == '\n') {
p = strchr(p, '\n');
if (p)
p++;
}
if (p)
ret->msg = xstrdup(p);
} else
ret->subject = xstrdup(p);
if (ret->msg_encoding) {
+ reencode(&ret->author, PAGE_ENCODING, ret->msg_encoding);
+ reencode(&ret->author_email, PAGE_ENCODING, ret->msg_encoding);
+ reencode(&ret->committer, PAGE_ENCODING, ret->msg_encoding);
+ reencode(&ret->committer_email, PAGE_ENCODING, ret->msg_encoding);
reencode(&ret->subject, PAGE_ENCODING, ret->msg_encoding);
reencode(&ret->msg, PAGE_ENCODING, ret->msg_encoding);
}
return ret;
}
struct taginfo *cgit_parse_tag(struct tag *tag)
{
void *data;
enum object_type type;
unsigned long size;
char *p;
struct taginfo *ret;