summaryrefslogtreecommitdiffabout
path: root/parsing.c
authorJonathan Bastien-Filiatrault <joe@x2a.org>2007-10-26 22:10:26 (UTC)
committer Jonathan Bastien-Filiatrault <joe@x2a.org>2007-11-05 23:13:30 (UTC)
commitaa5cc328f4894ba6972842b4edbca3017f169050 (patch) (unidiff)
treec8eb7be0f9186d3599a7d36907f473a550fd7529 /parsing.c
parent3845e177e4e0b231efb6fda0ac3cd3a2d8f34d4b (diff)
downloadcgit-aa5cc328f4894ba6972842b4edbca3017f169050.zip
cgit-aa5cc328f4894ba6972842b4edbca3017f169050.tar.gz
cgit-aa5cc328f4894ba6972842b4edbca3017f169050.tar.bz2
Set msg_encoding according to the header.
Diffstat (limited to 'parsing.c') (more/less context) (ignore whitespace changes)
-rw-r--r--parsing.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/parsing.c b/parsing.c
index 0412a9c..16b4db7 100644
--- a/parsing.c
+++ b/parsing.c
@@ -225,24 +225,32 @@ struct commitinfo *cgit_parse_commit(struct commit *commit)
225 225
226 if (!strncmp(p, "committer ", 9)) { 226 if (!strncmp(p, "committer ", 9)) {
227 p += 9; 227 p += 9;
228 t = strchr(p, '<') - 1; 228 t = strchr(p, '<') - 1;
229 ret->committer = substr(p, t); 229 ret->committer = substr(p, t);
230 p = t; 230 p = t;
231 t = strchr(t, '>') + 1; 231 t = strchr(t, '>') + 1;
232 ret->committer_email = substr(p, t); 232 ret->committer_email = substr(p, t);
233 ret->committer_date = atol(++t); 233 ret->committer_date = atol(++t);
234 p = strchr(t, '\n') + 1; 234 p = strchr(t, '\n') + 1;
235 } 235 }
236 236
237 if (!strncmp(p, "encoding ", 9)) {
238 p += 9;
239 t = strchr(p, '\n') + 1;
240 ret->msg_encoding = substr(p, t);
241 p = t;
242 } else
243 ret->msg_encoding = xstrdup(PAGE_ENCODING);
244
237 while (*p && (*p != '\n')) 245 while (*p && (*p != '\n'))
238 p = strchr(p, '\n') + 1; // skip unknown header fields 246 p = strchr(p, '\n') + 1; // skip unknown header fields
239 247
240 while (*p == '\n') 248 while (*p == '\n')
241 p = strchr(p, '\n') + 1; 249 p = strchr(p, '\n') + 1;
242 250
243 t = strchr(p, '\n'); 251 t = strchr(p, '\n');
244 if (t) { 252 if (t) {
245 if (*t == '\0') 253 if (*t == '\0')
246 ret->subject = "** empty **"; 254 ret->subject = "** empty **";
247 else 255 else
248 ret->subject = substr(p, t); 256 ret->subject = substr(p, t);