diff options
Diffstat (limited to 'mailmap.c')
-rw-r--r-- | mailmap.c | 23 |
1 files changed, 8 insertions, 15 deletions
@@ -71,22 +71,17 @@ static void add_mapping(struct string_list *map, char *old_name, char *old_email) { struct mailmap_entry *me; - int index; + struct string_list_item *item; if (old_email == NULL) { old_email = new_email; new_email = NULL; } - if ((index = string_list_find_insert_index(map, old_email, 1)) < 0) { - /* mailmap entry exists, invert index value */ - index = -1 - index; - me = (struct mailmap_entry *)map->items[index].util; + item = string_list_insert(map, old_email); + if (item->util) { + me = (struct mailmap_entry *)item->util; } else { - /* create mailmap entry */ - struct string_list_item *item; - - item = string_list_insert_at_index(map, index, old_email); me = xcalloc(1, sizeof(struct mailmap_entry)); me->namemap.strdup_strings = 1; me->namemap.cmp = namemap_cmp; @@ -94,8 +89,8 @@ static void add_mapping(struct string_list *map, } if (old_name == NULL) { - debug_mm("mailmap: adding (simple) entry for %s at index %d\n", - old_email, index); + debug_mm("mailmap: adding (simple) entry for '%s'\n", old_email); + /* Replace current name and new email for simple entry */ if (new_name) { free(me->name); @@ -107,8 +102,7 @@ static void add_mapping(struct string_list *map, } } else { struct mailmap_info *mi = xcalloc(1, sizeof(struct mailmap_info)); - debug_mm("mailmap: adding (complex) entry for %s at index %d\n", - old_email, index); + debug_mm("mailmap: adding (complex) entry for '%s'\n", old_email); if (new_name) mi->name = xstrdup(new_name); if (new_email) @@ -168,11 +162,10 @@ static void read_mailmap_line(struct string_list *map, char *buffer, char *cp; free(*repo_abbrev); - *repo_abbrev = xmalloc(len); for (cp = buffer + abblen; isspace(*cp); cp++) ; /* nothing */ - strcpy(*repo_abbrev, cp); + *repo_abbrev = xstrdup(cp); } return; } |