This is an automated email from the git hooks/post-receive script. guillem pushed a commit to branch master in repository dpkg.
commit 55553c41c15ddcf93b3c3a7ee42feccff4366bb9 Author: Guillem Jover <[email protected]> Date: Fri Feb 13 04:30:54 2015 +0100 libdpkg: Add new pkg_array_foreach() function --- lib/dpkg/libdpkg.map | 1 + lib/dpkg/pkg-array.c | 25 ++++++++++++++++++++++++- lib/dpkg/pkg-array.h | 6 +++++- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/lib/dpkg/libdpkg.map b/lib/dpkg/libdpkg.map index ea45886..dbc8e8b 100644 --- a/lib/dpkg/libdpkg.map +++ b/lib/dpkg/libdpkg.map @@ -260,6 +260,7 @@ LIBDPKG_PRIVATE { # Package array handling pkg_array_init_from_db; pkg_array_init_from_names; + pkg_array_foreach; pkg_array_sort; pkg_array_destroy; diff --git a/lib/dpkg/pkg-array.c b/lib/dpkg/pkg-array.c index fb8a901..a03972c 100644 --- a/lib/dpkg/pkg-array.c +++ b/lib/dpkg/pkg-array.c @@ -3,7 +3,7 @@ * pkg-array.c - primitives for pkg array handling * * Copyright © 1995,1996 Ian Jackson <[email protected]> - * Copyright © 2009-2014 Guillem Jover <[email protected]> + * Copyright © 2009-2015 Guillem Jover <[email protected]> * * This is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -78,6 +78,29 @@ pkg_array_init_from_db(struct pkg_array *a) } /** + * Visit each non-NULL package in a package array. + * + * @param a The array to visit. + * @param pkg_visitor The function to visit each item of the array. + * @param pkg_data Data to pass pkg_visit for each package visited. + */ +void +pkg_array_foreach(struct pkg_array *a, pkg_array_visitor_func *pkg_visitor, + void *pkg_data) +{ + int i; + + for (i = 0; i < a->n_pkgs; i++) { + struct pkginfo *pkg = a->pkgs[i]; + + if (pkg == NULL) + continue; + + pkg_visitor(a, pkg, pkg_data); + } +} + +/** * Sort a package array. * * @param a The array to sort. diff --git a/lib/dpkg/pkg-array.h b/lib/dpkg/pkg-array.h index 70b1536..858b4fe 100644 --- a/lib/dpkg/pkg-array.h +++ b/lib/dpkg/pkg-array.h @@ -2,7 +2,7 @@ * libdpkg - Debian packaging suite library routines * pkg-array.h - primitives for pkg array handling * - * Copyright © 2009-2014 Guillem Jover <[email protected]> + * Copyright © 2009-2015 Guillem Jover <[email protected]> * * This is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -41,10 +41,14 @@ struct pkg_array { }; typedef struct pkginfo *pkg_mapper_func(const char *name); +typedef void pkg_array_visitor_func(struct pkg_array *a, struct pkginfo *pkg, + void *pkg_data); void pkg_array_init_from_db(struct pkg_array *a); void pkg_array_init_from_names(struct pkg_array *a, pkg_mapper_func *pkg_mapper, const char **pkg_names); +void pkg_array_foreach(struct pkg_array *a, pkg_array_visitor_func *pkg_visitor, + void *pkg_data); void pkg_array_sort(struct pkg_array *a, pkg_sorter_func *pkg_sort); void pkg_array_destroy(struct pkg_array *a); -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/dpkg/dpkg.git -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

