diff options
author | Allan McRae <allan@archlinux.org> | 2011-07-03 10:10:36 +1000 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2011-07-03 13:42:24 -0500 |
commit | ab79b13079ea6c0c7b66e4c5d14686f06ba759ae (patch) | |
tree | e9489277d1815be0ba0972dc4ee989a1792d5c53 | |
parent | f612e5ede7f76458911b78adca3323c61a669dd0 (diff) | |
download | pacman-ab79b13079ea6c0c7b66e4c5d14686f06ba759ae.tar.xz |
Add alpm_list_previous method
Helper function to get the previous item in a list
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r-- | lib/libalpm/alpm_list.c | 18 | ||||
-rw-r--r-- | lib/libalpm/alpm_list.h | 1 |
2 files changed, 19 insertions, 0 deletions
diff --git a/lib/libalpm/alpm_list.c b/lib/libalpm/alpm_list.c index c2b30adc..1976e13d 100644 --- a/lib/libalpm/alpm_list.c +++ b/lib/libalpm/alpm_list.c @@ -556,6 +556,24 @@ inline alpm_list_t SYMEXPORT *alpm_list_next(const alpm_list_t *node) } /** + * @brief Get the previous element of a list. + * + * @param list the list head + * @param node the list node + * + * @return the previous element, or NULL when no previous element exist + */ +inline alpm_list_t SYMEXPORT *alpm_list_previous(const alpm_list_t *list, + const alpm_list_t *node) +{ + if(node && node != list) { + return node->prev; + } else { + return NULL; + } +} + +/** * @brief Get the last item in the list. * * @param list the list diff --git a/lib/libalpm/alpm_list.h b/lib/libalpm/alpm_list.h index 1f6393a6..27a76d12 100644 --- a/lib/libalpm/alpm_list.h +++ b/lib/libalpm/alpm_list.h @@ -70,6 +70,7 @@ alpm_list_t *alpm_list_reverse(alpm_list_t *list); alpm_list_t *alpm_list_first(const alpm_list_t *list); alpm_list_t *alpm_list_nth(const alpm_list_t *list, size_t n); alpm_list_t *alpm_list_next(const alpm_list_t *list); +alpm_list_t *alpm_list_previous(const alpm_list_t *list, const alpm_list_t *node); alpm_list_t *alpm_list_last(const alpm_list_t *list); void *alpm_list_getdata(const alpm_list_t *entry); |