summaryrefslogtreecommitdiff
path: root/mailmap.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-09-09 21:50:41 (GMT)
committerJunio C Hamano <gitster@pobox.com>2013-09-09 21:50:41 (GMT)
commitaf226bf01e99043f5f3d8bc09ad302d17e0de757 (patch)
treef04089cfa49837b0e8dd86b5cc560bda262d08a0 /mailmap.c
parenta23274e127fdb1674361271f14f7269f0a019cc2 (diff)
parentf972a1658a30809db113a3c486b1fe95b56633bf (diff)
downloadgit-af226bf01e99043f5f3d8bc09ad302d17e0de757.zip
git-af226bf01e99043f5f3d8bc09ad302d17e0de757.tar.gz
git-af226bf01e99043f5f3d8bc09ad302d17e0de757.tar.bz2
Merge branch 'jk/mailmap-incomplete-line'
* jk/mailmap-incomplete-line: mailmap: handle mailmap blobs without trailing newlines
Diffstat (limited to 'mailmap.c')
-rw-r--r--mailmap.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/mailmap.c b/mailmap.c
index 44614fc..3061434 100644
--- a/mailmap.c
+++ b/mailmap.c
@@ -193,20 +193,17 @@ static int read_mailmap_file(struct string_list *map, const char *filename,
return 0;
}
-static void read_mailmap_buf(struct string_list *map,
- const char *buf, unsigned long len,
- char **repo_abbrev)
+static void read_mailmap_string(struct string_list *map, char *buf,
+ char **repo_abbrev)
{
- while (len) {
- const char *end = strchrnul(buf, '\n');
- unsigned long linelen = end - buf + 1;
- char *line = xmemdupz(buf, linelen);
+ while (*buf) {
+ char *end = strchrnul(buf, '\n');
- read_mailmap_line(map, line, repo_abbrev);
+ if (*end)
+ *end++ = '\0';
- free(line);
- buf += linelen;
- len -= linelen;
+ read_mailmap_line(map, buf, repo_abbrev);
+ buf = end;
}
}
@@ -230,7 +227,7 @@ static int read_mailmap_blob(struct string_list *map,
if (type != OBJ_BLOB)
return error("mailmap is not a blob: %s", name);
- read_mailmap_buf(map, buf, size, repo_abbrev);
+ read_mailmap_string(map, buf, repo_abbrev);
free(buf);
return 0;