diff options
| -rw-r--r-- | mailmap.c | 20 | ||||
| -rw-r--r-- | string-list.c | 8 | ||||
| -rw-r--r-- | string-list.h | 12 | 
3 files changed, 18 insertions, 22 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) diff --git a/string-list.c b/string-list.c index 2f69c32a8a..2a32a3f1f5 100644 --- a/string-list.c +++ b/string-list.c @@ -59,13 +59,7 @@ static int add_entry(int insert_at, struct string_list *list, const char *string  struct string_list_item *string_list_insert(struct string_list *list, const char *string)  { -	return string_list_insert_at_index(list, -1, string); -} - -struct string_list_item *string_list_insert_at_index(struct string_list *list, -						     int insert_at, const char *string) -{ -	int index = add_entry(insert_at, list, string); +	int index = add_entry(-1, list, string);  	if (index < 0)  		index = -1 - index; diff --git a/string-list.h b/string-list.h index 2cc5e48427..d3809a1417 100644 --- a/string-list.h +++ b/string-list.h @@ -55,9 +55,17 @@ void string_list_remove_empty_items(struct string_list *list, int free_util);  int string_list_has_string(const struct string_list *list, const char *string);  int string_list_find_insert_index(const struct string_list *list, const char *string,  				  int negative_existing_index); +/* + * Inserts the given string into the sorted list. + * If the string already exists, the list is not altered. + * Returns the string_list_item, the string is part of. + */  struct string_list_item *string_list_insert(struct string_list *list, const char *string); -struct string_list_item *string_list_insert_at_index(struct string_list *list, -						     int insert_at, const char *string); + +/* + * Checks if the given string is part of a sorted list. If it is part of the list, + * return the coresponding string_list_item, NULL otherwise. + */  struct string_list_item *string_list_lookup(struct string_list *list, const char *string);  /* | 
