Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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)
  • Loading branch information
Junio C Hamano committed Dec 22, 2014
2 parents 53c3692 + f8c4ab6 commit 12b9f08
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 22 deletions.
20 changes: 7 additions & 13 deletions mailmap.c
Expand Up @@ -71,31 +71,26 @@ 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;
item->util = me;
}

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);
Expand All @@ -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)
Expand Down
8 changes: 1 addition & 7 deletions string-list.c
Expand Up @@ -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;
Expand Down
12 changes: 10 additions & 2 deletions string-list.h
Expand Up @@ -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);

/*
Expand Down

0 comments on commit 12b9f08

Please sign in to comment.