[Aptitude-svn-commit] r3874 - in branches/aptitude-0.3/aptitude: . src/generic

Daniel Burrows dburrows at costa.debian.org
Tue Aug 16 23:40:04 UTC 2005


Author: dburrows
Date: Tue Aug 16 23:40:01 2005
New Revision: 3874

Modified:
   branches/aptitude-0.3/aptitude/ChangeLog
   branches/aptitude-0.3/aptitude/src/generic/apt.cc
Log:
Rework the conditions under which currently satisfied recommendations are considered to be 'interesting'.

Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog	(original)
+++ branches/aptitude-0.3/aptitude/ChangeLog	Tue Aug 16 23:40:01 2005
@@ -2,6 +2,12 @@
 
 	* src/generic/apt.cc:
 
+	  Only treat currently satisfied recommendations as interesting if
+	  they belong to the current package version OR they subsume/are
+	  subsumed by a recommendation of the current version.
+
+	* src/generic/apt.cc:
+
 	  Fix subsumes(): when the first dependency used a >= comparison,
 	  it was checking for (> | <= | =) instead of (> | >= | =).  This
 	  resulted, unsurprisingly, in >= recommendations that hadn't even

Modified: branches/aptitude-0.3/aptitude/src/generic/apt.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/generic/apt.cc	(original)
+++ branches/aptitude-0.3/aptitude/src/generic/apt.cc	Tue Aug 16 23:40:01 2005
@@ -638,17 +638,21 @@
     return false;
   else
     {
-      pkgCache::DepIterator dtmp = d;
-      while(!dtmp.end() && dtmp->CompareOp & pkgCache::Dep::Or)
-	++dtmp;
-      if((*cache)[d] & pkgDepCache::DepGNow)
-	return true;
-
       pkgCache::VerIterator currver = const_cast<pkgCache::DepIterator &>(d).ParentPkg().CurrentVer();
       pkgCache::VerIterator parver = const_cast<pkgCache::DepIterator &>(d).ParentVer();
 
+      // Soft deps attached to the current version are interesting iff
+      // they are currently satisfied.
       if(currver == parver)
-	return false;
+	{
+	  pkgCache::DepIterator dtmp = d;
+	  while(!dtmp.end() && dtmp->CompareOp & pkgCache::Dep::Or)
+	    ++dtmp;
+	  if((*cache)[dtmp] & pkgDepCache::DepGNow)
+	    return true;
+
+	  return false;
+	}
       else if(currver.end())
 	return true;
       else
@@ -670,7 +674,15 @@
 	    {
 	      if(d2->Type == pkgCache::Dep::Recommends &&
 		 or_group_subsumes(d2, d) || or_group_subsumes(d, d2))
-		return false;
+		{
+		  pkgCache::DepIterator dtmp = d;
+		  while(!dtmp.end() && dtmp->CompareOp & pkgCache::Dep::Or)
+		    ++dtmp;
+		  if((*cache)[dtmp] & pkgDepCache::DepGNow)
+		    return true;
+
+		  return false;
+		}
 
 	      while(!d2.end() && ((d2->CompareOp & pkgCache::Dep::Or) != 0))
 		++d2;



More information about the Aptitude-svn-commit mailing list