poldek: poldek/pkg.h, poldek/pkgiter.c - added pkg_req_iter_curren...
mis
mis at pld-linux.org
Wed Jan 23 16:01:50 CET 2008
Author: mis Date: Wed Jan 23 15:01:50 2008 GMT
Module: poldek Tag: HEAD
---- Log message:
- added pkg_req_iter_current_req_type()
---- Files affected:
poldek/poldek:
pkg.h (1.81 -> 1.82) , pkgiter.c (1.1 -> 1.2)
---- Diffs:
================================================================
Index: poldek/poldek/pkg.h
diff -u poldek/poldek/pkg.h:1.81 poldek/poldek/pkg.h:1.82
--- poldek/poldek/pkg.h:1.81 Tue Jan 22 12:40:29 2008
+++ poldek/poldek/pkg.h Wed Jan 23 16:01:45 2008
@@ -288,8 +288,13 @@
struct pkg_req_iter *pkg_req_iter_new(const struct pkg *pkg, unsigned flags);
void pkg_req_iter_free(struct pkg_req_iter *it);
+
+/* get next requirement */
const struct capreq *pkg_req_iter_get(struct pkg_req_iter *it);
+/* and its type PKG_ITER_* */
+unsigned pkg_req_iter_current_req_type(const struct pkg_req_iter *it);
+
#endif
================================================================
Index: poldek/poldek/pkgiter.c
diff -u poldek/poldek/pkgiter.c:1.1 poldek/poldek/pkgiter.c:1.2
--- poldek/poldek/pkgiter.c:1.1 Tue Jan 22 12:40:29 2008
+++ poldek/poldek/pkgiter.c Wed Jan 23 16:01:45 2008
@@ -101,8 +101,9 @@
/* requirements iterator */
struct pkg_req_iter {
- const struct pkg *pkg;
+ const struct pkg *pkg;
unsigned flags;
+ unsigned current_req_type;
int nreq;
int nsug;
@@ -119,6 +120,7 @@
if (flags == 0)
flags = PKG_ITER_REQIN;
+ it->current_req_type = 0;
it->flags = flags;
it->req = NULL;
@@ -138,6 +140,8 @@
{
struct capreq *req;
+ it->current_req_type = 0; /* reset type */
+
if (it->pkg->reqs && it->nreq < n_array_size(it->pkg->reqs)) {
req = n_array_nth(it->pkg->reqs, it->nreq);
it->nreq++;
@@ -147,6 +151,12 @@
else if ((it->flags & PKG_ITER_REQUN) == 0 && capreq_is_prereq_un(req))
return pkg_req_iter_get(it);
+
+ /* set type of returned (current) req */
+ if (capreq_is_prereq_un(req))
+ it->current_req_type = PKG_ITER_REQUN;
+ else
+ it->current_req_type = PKG_ITER_REQIN;
return req;
}
@@ -154,6 +164,7 @@
if ((it->flags & PKG_ITER_REQSUG)) {
if (it->pkg->sugs && it->nsug < n_array_size(it->pkg->sugs)) {
req = n_array_nth(it->pkg->sugs, it->nsug);
+ it->current_req_type = PKG_ITER_REQSUG;
it->nsug++;
return req;
@@ -188,9 +199,16 @@
it->ndir++;
it->req = capreq_new(NULL, tmp, 0, NULL, NULL, 0,
CAPREQ_BASTARD | CAPREQ_ISDIR);
+ it->current_req_type = PKG_ITER_REQIN;/* autodirdeps are always REQIN */
return it->req;
}
return NULL;
}
+unsigned pkg_req_iter_current_req_type(const struct pkg_req_iter *it)
+{
+ n_assert(it->current_req_type > 0);
+ return it->current_req_type;
+}
+
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/poldek/poldek/pkg.h?r1=1.81&r2=1.82&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/poldek/poldek/pkgiter.c?r1=1.1&r2=1.2&f=u
More information about the pld-cvs-commit
mailing list