about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--cgit.h4
-rw-r--r--parsing.c12
2 files changed, 14 insertions, 2 deletions
diff --git a/cgit.h b/cgit.h
index b6b60c6..f06a941 100644
--- a/cgit.h
+++ b/cgit.h
@@ -18,7 +18,11 @@ struct cacheitem {
 struct commitinfo {
 	struct commit *commit;
 	char *author;
+	char *author_email;
+	unsigned long author_date;
 	char *committer;
+	char *committer_email;
+	unsigned long committer_date;
 	char *subject;
 	char *msg;
 };
diff --git a/parsing.c b/parsing.c
index be471b5..4d5cc74 100644
--- a/parsing.c
+++ b/parsing.c
@@ -135,14 +135,22 @@ struct commitinfo *cgit_parse_commit(struct commit *commit)
 		p += 7;
 		t = strchr(p, '<') - 1;
 		ret->author = substr(p, t);
-		p = strchr(p, '\n') + 1;
+		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 = strchr(p, '\n') + 1;
+		p = t;
+		t = strchr(t, '>') + 1;
+		ret->committer_email = substr(p, t);
+		ret->committer_date = atol(++t);
+		p = strchr(t, '\n') + 1;
 	}
 
 	while (*p == '\n')