The following commit has been merged in the master branch:
commit 65969bfbccaf387c69df284215b6aefea7496f41
Author: Guillem Jover <[email protected]>
Date:   Wed Nov 3 10:46:28 2010 +0100

    Use new enum for dependency found status
    
    Instead of cryptic literal integers use named enums.

diff --git a/src/packages.c b/src/packages.c
index 416fe70..ec48e54 100644
--- a/src/packages.c
+++ b/src/packages.c
@@ -295,6 +295,13 @@ void process_queue(void) {
  * and breaking.
  */
 
+enum found_status {
+  found_none = 0,
+  found_defer = 1,
+  found_forced = 2,
+  found_ok = 3,
+};
+
 /*
  * Return values:
  *   0: cannot be satisfied.
@@ -306,22 +313,20 @@ void process_queue(void) {
  *      (*interestingwarnings >= 0 on exit? caller is to print oemsgs).
  *   3: satisfied now.
  */
-static int deppossi_ok_found(struct pkginfo *possdependee,
-                             struct pkginfo *requiredby,
-                             struct pkginfo *removing,
-                             struct pkginfo *providing,
-                             struct pkginfo **fixbytrig,
-                             bool *matched,
-                             struct deppossi *checkversion,
-                             int *interestingwarnings,
-                             struct varbuf *oemsgs) {
-  int thisf;
+static enum found_status
+deppossi_ok_found(struct pkginfo *possdependee, struct pkginfo *requiredby,
+                  struct pkginfo *removing, struct pkginfo *providing,
+                  struct pkginfo **fixbytrig,
+                  bool *matched, struct deppossi *checkversion,
+                  int *interestingwarnings, struct varbuf *oemsgs)
+{
+  enum found_status thisf;
 
   if (ignore_depends(possdependee)) {
     debug(dbg_depcondetail,"      ignoring depended package so ok and found");
-    return 3;
+    return found_ok;
   }
-  thisf= 0;
+  thisf = found_none;
   if (possdependee == removing) {
     if (providing) {
       varbufprintf(oemsgs,
@@ -333,7 +338,8 @@ static int deppossi_ok_found(struct pkginfo *possdependee,
     }
 
     *matched = true;
-    if (fc_depends) thisf= (dependtry >= 4) ? 2 : 1;
+    if (fc_depends)
+      thisf = (dependtry >= 4) ? found_forced : found_defer;
     debug(dbg_depcondetail,"      removing possdependee, returning %d",thisf);
     return thisf;
   }
@@ -349,7 +355,8 @@ static int deppossi_ok_found(struct pkginfo *possdependee,
                   versiondescribe(&possdependee->installed.version,
                                   vdew_nonambig));
       assert(checkversion->verrel != dvr_none);
-      if (fc_depends || fc_dependsversion) thisf= (dependtry >= 3) ? 2 : 1;
+      if (fc_depends || fc_dependsversion)
+        thisf = (dependtry >= 3) ? found_forced : found_defer;
       debug(dbg_depcondetail,"      bad version, returning %d",thisf);
       (*interestingwarnings)++;
       return thisf;
@@ -357,7 +364,7 @@ static int deppossi_ok_found(struct pkginfo *possdependee,
     if (possdependee->status == stat_installed ||
         possdependee->status == stat_triggerspending) {
       debug(dbg_depcondetail,"      is installed, ok and found");
-      return 3;
+      return found_ok;
     }
     if (possdependee->status == stat_triggersawaited) {
       assert(possdependee->trigaw.head);
@@ -387,21 +394,23 @@ static int deppossi_ok_found(struct pkginfo *possdependee,
        * but then fails to go on to update the awaiters.) */
       *fixbytrig = possdependee->trigaw.head->pend;
       debug(dbg_depcondetail,
-            "      triggers-awaited, fixbytrig `%s', returning 1",
+            "      triggers-awaited, fixbytrig '%s', defer",
             (*fixbytrig)->name);
-      return 1;
+      return found_defer;
     }
     if (possdependee->clientdata &&
         possdependee->clientdata->istobe == itb_installnew) {
       debug(dbg_depcondetail,"      unpacked/halfconfigured, defer");
-      return 1;
+      return found_defer;
     } else if (!removing && fc_configureany &&
                !skip_due_to_hold(possdependee) &&
                !(possdependee->status == stat_halfconfigured)) {
       fprintf(stderr,
               _("dpkg: also configuring `%s' (required by `%s')\n"),
               possdependee->name, requiredby->name);
-      add_to_queue(possdependee); sincenothing=0; return 1;
+      add_to_queue(possdependee);
+      sincenothing = 0;
+      return found_defer;
     } else {
       if (providing) {
        varbufprintf(oemsgs,
@@ -432,7 +441,7 @@ static int deppossi_ok_found(struct pkginfo *possdependee,
 
 unsuitable:
   if (fc_depends)
-    thisf = (dependtry >= 4) ? 2 : 1;
+    thisf = (dependtry >= 4) ? found_forced : found_defer;
 
   debug(dbg_depcondetail, "        returning %d", thisf);
   (*interestingwarnings)++;
@@ -525,7 +534,7 @@ dependencies_ok(struct pkginfo *pkg, struct pkginfo 
*removing,
   /* Valid values: 2 = ok, 1 = defer, 0 = halt. */
   enum dep_check ok;
   /* Valid values: 0 = none, 1 = defer, 2 = withwarning, 3 = ok. */
-  int found, thisf;
+  enum found_status found, thisf;
   int interestingwarnings;
   bool matched, anycannotfixbytrig;
   struct varbuf oemsgs = VARBUF_INIT;
@@ -545,21 +554,22 @@ dependencies_ok(struct pkginfo *pkg, struct pkginfo 
*removing,
     debug(dbg_depcondetail,"  checking group ...");
     matched = false;
     varbufreset(&oemsgs);
-    found = 0;
+    found = found_none;
     possfixbytrig = NULL;
-    for (possi= dep->list; found != 3 && possi; possi= possi->next) {
+    for (possi = dep->list; found != found_ok && possi; possi = possi->next) {
       debug(dbg_depcondetail,"    checking possibility  -> 
%s",possi->ed->name);
       if (possi->cyclebreak) {
         debug(dbg_depcondetail,"      break cycle so ok and found");
-        found= 3; break;
+        found = found_ok;
+        break;
       }
       thisf = deppossi_ok_found(possi->ed, pkg, removing, NULL,
                                 &possfixbytrig,
                                &matched,possi,&interestingwarnings,&oemsgs);
       if (thisf > found) found= thisf;
-      if (found != 3 && possi->verrel == dvr_none) {
+      if (found != found_ok && possi->verrel == dvr_none) {
         for (provider = possi->ed->installed.depended;
-             found != 3 && provider;
+             found != found_ok && provider;
              provider = provider->rev_next) {
           if (provider->up->type != dep_provides)
             continue;
@@ -579,10 +589,10 @@ dependencies_ok(struct pkginfo *pkg, struct pkginfo 
*removing,
           found, matched, possfixbytrig ? possfixbytrig->name : "-");
     if (removing && !matched) continue;
     switch (found) {
-    case 0:
+    case found_none:
       anycannotfixbytrig = true;
       ok = dep_check_halt;
-    case 2:
+    case found_forced:
       varbufaddstr(aemsgs, " ");
       varbufaddstr(aemsgs, pkg->name);
       varbufaddstr(aemsgs, _(" depends on "));
@@ -597,7 +607,7 @@ dependencies_ok(struct pkginfo *pkg, struct pkginfo 
*removing,
         varbufaddstr(aemsgs, ".\n");
       }
       break;
-    case 1:
+    case found_defer:
       if (possfixbytrig)
         canfixbytrig = possfixbytrig;
       else
@@ -605,7 +615,7 @@ dependencies_ok(struct pkginfo *pkg, struct pkginfo 
*removing,
       if (ok > dep_check_defer)
         ok = dep_check_defer;
       break;
-    case 3:
+    case found_ok:
       break;
     default:
       internerr("unknown value for found '%d'", found);

-- 
dpkg's main repository


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to