index : pacman | |
Archlinux32 fork of pacman | gitolite user |
summaryrefslogtreecommitdiff |
author | Chantry Xavier <shiningxc@gmail.com> | 2008-05-10 18:47:42 +0200 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2008-05-13 15:49:02 -0500 |
commit | f43805d875ad5c672afbbfff48bded2087204773 (patch) | |
tree | 6cfc9e8ea40230aa1ec3349361f6f1f1fad63f37 /lib/libalpm/alpm_list.c | |
parent | 8248b4bfb1abe175d73e20106a18172da5296836 (diff) |
-rw-r--r-- | lib/libalpm/alpm_list.c | 28 |
diff --git a/lib/libalpm/alpm_list.c b/lib/libalpm/alpm_list.c index ae54e190..87567402 100644 --- a/lib/libalpm/alpm_list.c +++ b/lib/libalpm/alpm_list.c @@ -307,7 +307,7 @@ alpm_list_t SYMEXPORT *alpm_list_remove(alpm_list_t *haystack, const void *needl continue; } tmp = i->next; - if(fn(needle, i->data) == 0) { + if(fn(i->data, needle) == 0) { /* we found a matching item */ if(i == haystack) { /* Special case: removing the head node which has a back reference to @@ -351,6 +351,22 @@ alpm_list_t SYMEXPORT *alpm_list_remove(alpm_list_t *haystack, const void *needl } /** + * @brief Remove a string from a list. + * + * @param haystack the list to remove the item from + * @param needle the data member of the item we're removing + * @param data output parameter containing data of the removed item + * + * @return the resultant list + */ +alpm_list_t SYMEXPORT *alpm_list_remove_str(alpm_list_t *haystack, + const char *needle, char **data) +{ + return(alpm_list_remove(haystack, (const void *)needle, + (alpm_list_fn_cmp)strcmp, (void **)data)); +} + +/** * @brief Create a new list without any duplicates. * * This does NOT copy data members. @@ -586,7 +602,7 @@ void SYMEXPORT *alpm_list_find(const alpm_list_t *haystack, const void *needle, } /* trivial helper function for alpm_list_find_ptr */ -static int ptrcmp(const void *p, const void *q) +static int ptr_cmp(const void *p, const void *q) { return(p != q); } @@ -603,7 +619,7 @@ static int ptrcmp(const void *p, const void *q) */ void SYMEXPORT *alpm_list_find_ptr(const alpm_list_t *haystack, const void *needle) { - return(alpm_list_find(haystack, needle, ptrcmp)); + return(alpm_list_find(haystack, needle, ptr_cmp)); } /** @@ -614,9 +630,11 @@ void SYMEXPORT *alpm_list_find_ptr(const alpm_list_t *haystack, const void *need * * @return `needle` if found, NULL otherwise */ -char SYMEXPORT *alpm_list_find_str(const alpm_list_t *haystack, const char *needle) +char SYMEXPORT *alpm_list_find_str(const alpm_list_t *haystack, + const char *needle) { - return((char *)alpm_list_find(haystack, (const void*)needle, (alpm_list_fn_cmp)strcmp)); + return((char *)alpm_list_find(haystack, (const void*)needle, + (alpm_list_fn_cmp)strcmp)); } /** |