|
diff --git a/parsing.c b/parsing.c index 4173dd4..4412dee 100644 --- a/ parsing.c+++ b/ parsing.c |
|
@@ -140,16 +140,22 @@ char *substr(const char *head, const char *tail) |
140 | |
140 | |
141 | struct commitinfo *cgit_parse_commit(struct commit *commit) |
141 | struct commitinfo *cgit_parse_commit(struct commit *commit) |
142 | { |
142 | { |
143 | struct commitinfo *ret; |
143 | struct commitinfo *ret; |
144 | char *p = commit->buffer, *t = commit->buffer; |
144 | char *p = commit->buffer, *t = commit->buffer; |
145 | |
145 | |
146 | ret = xmalloc(sizeof(*ret)); |
146 | ret = xmalloc(sizeof(*ret)); |
147 | ret->commit = commit; |
147 | ret->commit = commit; |
| |
148 | ret->author = NULL; |
| |
149 | ret->author_email = NULL; |
| |
150 | ret->committer = NULL; |
| |
151 | ret->committer_email = NULL; |
| |
152 | ret->subject = NULL; |
| |
153 | ret->msg = NULL; |
148 | |
154 | |
149 | if (strncmp(p, "tree ", 5)) |
155 | if (strncmp(p, "tree ", 5)) |
150 | die("Bad commit: %s", sha1_to_hex(commit->object.sha1)); |
156 | die("Bad commit: %s", sha1_to_hex(commit->object.sha1)); |
151 | else |
157 | else |
152 | p += 46; // "tree " + hex[40] + "\n" |
158 | p += 46; // "tree " + hex[40] + "\n" |
153 | |
159 | |
154 | while (!strncmp(p, "parent ", 7)) |
160 | while (!strncmp(p, "parent ", 7)) |
155 | p += 48; // "parent " + hex[40] + "\n" |
161 | p += 48; // "parent " + hex[40] + "\n" |
@@ -175,17 +181,18 @@ struct commitinfo *cgit_parse_commit(struct commit *commit) |
175 | ret->committer_date = atol(++t); |
181 | ret->committer_date = atol(++t); |
176 | p = strchr(t, '\n') + 1; |
182 | p = strchr(t, '\n') + 1; |
177 | } |
183 | } |
178 | |
184 | |
179 | while (*p == '\n') |
185 | while (*p == '\n') |
180 | p = strchr(p, '\n') + 1; |
186 | p = strchr(p, '\n') + 1; |
181 | |
187 | |
182 | t = strchr(p, '\n'); |
188 | t = strchr(p, '\n'); |
183 | ret->subject = substr(p, t); |
189 | if (t && *t) { |
184 | p = t + 1; |
190 | ret->subject = substr(p, t); |
185 | |
191 | p = t + 1; |
186 | while (*p == '\n') |
| |
187 | p = strchr(p, '\n') + 1; |
| |
188 | ret->msg = p; |
| |
189 | |
192 | |
| |
193 | while (*p == '\n') |
| |
194 | p = strchr(p, '\n') + 1; |
| |
195 | ret->msg = p; |
| |
196 | } |
190 | return ret; |
197 | return ret; |
191 | } |
198 | } |
|