- ret = xmalloc(sizeof(*ret));
- ret->tagger = NULL;
- ret->tagger_email = NULL;
- ret->tagger_date = 0;
- ret->msg = NULL;
-
- p = data;
-
- while (p && *p) {
- if (*p == '\n')
- break;
-
- if (starts_with(p, "tagger ")) {
- p = parse_user(p + 7, &ret->tagger, &ret->tagger_email,
- &ret->tagger_date);
- } else {
- p = strchr(p, '\n');
- if (p)
- p++;
+ ret = xcalloc(1, sizeof(struct taginfo));
+
+ for (p = data; !end_of_header(p); p = next_header_line(p)) {
+ if (skip_prefix(p, "tagger ", &p)) {
+ parse_user(p, &ret->tagger, &ret->tagger_email,
+ &ret->tagger_date, &ret->tagger_tz);