The following commit has been merged in the master branch:
commit 9114e9d298a84dd7f1b1a27b4a377ddd4e7c2f8b
Author: Guillem Jover <[email protected]>
Date: Thu Feb 25 23:38:51 2010 +0100
Use while () instead for () when using package iterators
The code looks more balanced this way.
diff --git a/dselect/pkglist.cc b/dselect/pkglist.cc
index e2b2492..fd90dcf 100644
--- a/dselect/pkglist.cc
+++ b/dselect/pkglist.cc
@@ -387,9 +387,9 @@ packagelist::packagelist(keybindings *kb) : baselist(kb) {
struct pkgiterator *iter;
struct pkginfo *pkg;
- for (iter=iterpkgstart(), nitems=0;
- (pkg=iterpkgnext(iter));
- ) {
+ nitems = 0;
+ iter = iterpkgstart();
+ while ((pkg = iterpkgnext(iter))) {
struct perpackagestate *state= &datatable[nitems];
state->pkg= pkg;
if (pkg->status == pkginfo::stat_notinstalled &&
diff --git a/src/depcon.c b/src/depcon.c
index b64e358..beede86 100644
--- a/src/depcon.c
+++ b/src/depcon.c
@@ -158,7 +158,8 @@ findbreakcycle(struct pkginfo *pkg)
struct pkginfo *tpkg;
/* Clear the visited flag of all packages before we traverse them. */
- for (iter = iterpkgstart(); (tpkg=iterpkgnext(iter)); ) {
+ iter = iterpkgstart();
+ while ((tpkg = iterpkgnext(iter))) {
tpkg->clientdata->color = white;
}
iterpkgend(iter);
diff --git a/src/enquiry.c b/src/enquiry.c
index 83714a0..6441082 100644
--- a/src/enquiry.c
+++ b/src/enquiry.c
@@ -332,9 +332,9 @@ void predeppackage(const char *const *argv) {
modstatdb_init(admindir,msdbrw_readonly);
clear_istobes(); /* We use clientdata->istobe to detect loops */
- for (it = iterpkgstart(), dep = NULL;
- !dep && (pkg=iterpkgnext(it));
- ) {
+ dep = NULL;
+ it = iterpkgstart();
+ while (!dep && (pkg = iterpkgnext(it))) {
if (pkg->want != want_install) continue; /* Ignore packages user doesn't
want */
if (!pkg->files) continue; /* Ignore packages not available */
pkg->clientdata->istobe= itb_preinstall;
--
dpkg's main repository
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]