diff options
| author | 2006-12-16 22:25:41 (JST) | |
|---|---|---|
| committer | 2006-12-16 22:25:41 (JST) | |
| commit | 77078ba716ccdfdc954741355dd6a17632db961b (patch) | |
| tree | ef66d7a2690c90981ab0f446a19111a04d121c7a | |
| parent | 7c849d94ec1cfecdec5a88d49f5af5c98f96ebca (diff) | |
| download | cgit-77078ba716ccdfdc954741355dd6a17632db961b.zip cgit-77078ba716ccdfdc954741355dd6a17632db961b.tar.gz | |
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 { | |||
| 18 | struct commitinfo { | 18 | struct commitinfo { |
| 19 | struct commit *commit; | 19 | struct commit *commit; |
| 20 | char *author; | 20 | char *author; |
| 21 | char *author_email; | ||
| 22 | unsigned long author_date; | ||
| 21 | char *committer; | 23 | char *committer; |
| 24 | char *committer_email; | ||
| 25 | unsigned long committer_date; | ||
| 22 | char *subject; | 26 | char *subject; |
| 23 | char *msg; | 27 | char *msg; |
| 24 | }; | 28 | }; |
| @@ -135,14 +135,22 @@ struct commitinfo *cgit_parse_commit(struct commit *commit) | |||
| 135 | p += 7; | 135 | p += 7; |
| 136 | t = strchr(p, '<') - 1; | 136 | t = strchr(p, '<') - 1; |
| 137 | ret->author = substr(p, t); | 137 | ret->author = substr(p, t); |
| 138 | p = strchr(p, '\n') + 1; | 138 | p = t; |
| 139 | t = strchr(t, '>') + 1; | ||
| 140 | ret->author_email = substr(p, t); | ||
| 141 | ret->author_date = atol(++t); | ||
| 142 | p = strchr(t, '\n') + 1; | ||
| 139 | } | 143 | } |
| 140 | 144 | ||
| 141 | if (!strncmp(p, "committer ", 9)) { | 145 | if (!strncmp(p, "committer ", 9)) { |
| 142 | p += 9; | 146 | p += 9; |
| 143 | t = strchr(p, '<') - 1; | 147 | t = strchr(p, '<') - 1; |
| 144 | ret->committer = substr(p, t); | 148 | ret->committer = substr(p, t); |
| 145 | p = strchr(p, '\n') + 1; | 149 | p = t; |
| 150 | t = strchr(t, '>') + 1; | ||
| 151 | ret->committer_email = substr(p, t); | ||
| 152 | ret->committer_date = atol(++t); | ||
| 153 | p = strchr(t, '\n') + 1; | ||
| 146 | } | 154 | } |
| 147 | 155 | ||
| 148 | while (*p == '\n') | 156 | while (*p == '\n') |
