diff options
| author | Lars Hjemli <hjemli@gmail.com> | 2006-12-16 14:25:41 +0100 | 
|---|---|---|
| committer | Lars Hjemli <hjemli@gmail.com> | 2006-12-16 14:25:41 +0100 | 
| commit | 77078ba716ccdfdc954741355dd6a17632db961b (patch) | |
| tree | ef66d7a2690c90981ab0f446a19111a04d121c7a | |
| parent | 7c849d94ec1cfecdec5a88d49f5af5c98f96ebca (diff) | |
Teach commit parser about author/committer email + timestamp
We want all four of these when showing a commit, so save them in the
commitinfo struct.
Btw: There's probably no good reason to save committer timestamp since
it's already available in commit->date. But it doesn't hurt us either,
and it makes the parser look more complete, so we just do it.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| -rw-r--r-- | cgit.h | 4 | ||||
| -rw-r--r-- | parsing.c | 12 | 
2 files changed, 14 insertions, 2 deletions
| @@ -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;  }; @@ -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') | 
