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]

Reply via email to