Merge branch 'sb/string-list'
API simplification. * sb/string-list: string_list: remove string_list_insert_at_index() from its API mailmap: use higher level string list functions string_list: document string_list_(insert,lookup)
This commit is contained in:
commit
12b9f08953
20
mailmap.c
20
mailmap.c
@ -71,22 +71,17 @@ static void add_mapping(struct string_list *map,
|
|||||||
char *old_name, char *old_email)
|
char *old_name, char *old_email)
|
||||||
{
|
{
|
||||||
struct mailmap_entry *me;
|
struct mailmap_entry *me;
|
||||||
int index;
|
struct string_list_item *item;
|
||||||
|
|
||||||
if (old_email == NULL) {
|
if (old_email == NULL) {
|
||||||
old_email = new_email;
|
old_email = new_email;
|
||||||
new_email = NULL;
|
new_email = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((index = string_list_find_insert_index(map, old_email, 1)) < 0) {
|
item = string_list_insert(map, old_email);
|
||||||
/* mailmap entry exists, invert index value */
|
if (item->util) {
|
||||||
index = -1 - index;
|
me = (struct mailmap_entry *)item->util;
|
||||||
me = (struct mailmap_entry *)map->items[index].util;
|
|
||||||
} else {
|
} 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 = xcalloc(1, sizeof(struct mailmap_entry));
|
||||||
me->namemap.strdup_strings = 1;
|
me->namemap.strdup_strings = 1;
|
||||||
me->namemap.cmp = namemap_cmp;
|
me->namemap.cmp = namemap_cmp;
|
||||||
@ -94,8 +89,8 @@ static void add_mapping(struct string_list *map,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (old_name == NULL) {
|
if (old_name == NULL) {
|
||||||
debug_mm("mailmap: adding (simple) entry for %s at index %d\n",
|
debug_mm("mailmap: adding (simple) entry for '%s'\n", old_email);
|
||||||
old_email, index);
|
|
||||||
/* Replace current name and new email for simple entry */
|
/* Replace current name and new email for simple entry */
|
||||||
if (new_name) {
|
if (new_name) {
|
||||||
free(me->name);
|
free(me->name);
|
||||||
@ -107,8 +102,7 @@ static void add_mapping(struct string_list *map,
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
struct mailmap_info *mi = xcalloc(1, sizeof(struct mailmap_info));
|
struct mailmap_info *mi = xcalloc(1, sizeof(struct mailmap_info));
|
||||||
debug_mm("mailmap: adding (complex) entry for %s at index %d\n",
|
debug_mm("mailmap: adding (complex) entry for '%s'\n", old_email);
|
||||||
old_email, index);
|
|
||||||
if (new_name)
|
if (new_name)
|
||||||
mi->name = xstrdup(new_name);
|
mi->name = xstrdup(new_name);
|
||||||
if (new_email)
|
if (new_email)
|
||||||
|
@ -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)
|
struct string_list_item *string_list_insert(struct string_list *list, const char *string)
|
||||||
{
|
{
|
||||||
return string_list_insert_at_index(list, -1, string);
|
int index = add_entry(-1, list, 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);
|
|
||||||
|
|
||||||
if (index < 0)
|
if (index < 0)
|
||||||
index = -1 - index;
|
index = -1 - index;
|
||||||
|
@ -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_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 string_list_find_insert_index(const struct string_list *list, const char *string,
|
||||||
int negative_existing_index);
|
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(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);
|
struct string_list_item *string_list_lookup(struct string_list *list, const char *string);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user