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

Daniel Burrows dburrows at costa.debian.org
Thu Sep 22 19:22:40 UTC 2005


Author: dburrows
Date: Thu Sep 22 19:22:37 2005
New Revision: 4177

Modified:
   branches/aptitude-0.3/aptitude/ChangeLog
   branches/aptitude-0.3/aptitude/src/generic/problemresolver/problemresolver.h
   branches/aptitude-0.3/aptitude/src/generic/resolver_manager.cc
Log:
Make approving and rejecting an action mutually exclusive.

Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog	(original)
+++ branches/aptitude-0.3/aptitude/ChangeLog	Thu Sep 22 19:22:37 2005
@@ -1,5 +1,11 @@
 2005-09-22  Daniel Burrows  <dburrows at debian.org>
 
+	* src/generic/problemresolver/problemresolver.h, src/generic/resolver_manager.cc:
+
+	  Make approving and rejecting an action mutually exclusive:
+	  actions that are approved are automatically un-rejected, and
+	  vice versa.
+
 	* src/generic/problemresolver/problemresolver.h:
 
 	  Allow mandated versions to be ignored in favor of other mandated

Modified: branches/aptitude-0.3/aptitude/src/generic/problemresolver/problemresolver.h
==============================================================================
--- branches/aptitude-0.3/aptitude/src/generic/problemresolver/problemresolver.h	(original)
+++ branches/aptitude-0.3/aptitude/src/generic/problemresolver/problemresolver.h	Thu Sep 22 19:22:37 2005
@@ -2065,6 +2065,7 @@
   void reject_version(const version &ver)
   {
     user_rejected.insert(ver);
+    unmandate_version(ver);
   }
 
   /** Cancel any rejection of ver, allowing the resolver to once
@@ -2080,6 +2081,7 @@
   void mandate_version(const version &ver)
   {
     user_mandated.insert(ver);
+    unreject_version(ver);
   }
 
   void unmandate_version(const version &ver)
@@ -2113,6 +2115,7 @@
     assert(d.is_soft());
 
     user_hardened.insert(d);
+    unforce_break(d);
   }
 
   /** Un-harden (soften?) the given dependency. */
@@ -2145,11 +2148,11 @@
   {
     assert(d.is_soft());
 
-    unharden(d);
-
     for(typename dep::solver_iterator si = d.solvers_begin();
 	!si.end(); ++si)
       reject_version(*si);
+
+    unharden(d);
   }
 
   /** The given soft dependency must be forced-broken; allow it to be
@@ -2157,7 +2160,7 @@
    */
   void unforce_break(const dep &d)
   {
-    assert(is_forced_broken(d));
+    assert(d.is_soft());
 
     for(typename dep::solver_iterator si = d.solvers_begin();
 	!si.end(); ++si)

Modified: branches/aptitude-0.3/aptitude/src/generic/resolver_manager.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/generic/resolver_manager.cc	(original)
+++ branches/aptitude-0.3/aptitude/src/generic/resolver_manager.cc	Thu Sep 22 19:22:37 2005
@@ -707,6 +707,9 @@
   assert(resolver);
 
   resolver->reject_version(ver);
+
+  l.release();
+  state_changed();
 }
 
 void resolver_manager::unreject_version(const aptitude_resolver_version &ver)
@@ -742,6 +745,9 @@
   assert(resolver);
 
   resolver->mandate_version(ver);
+
+  l.release();
+  state_changed();
 }
 
 void resolver_manager::unmandate_version(const aptitude_resolver_version &ver)
@@ -776,6 +782,9 @@
   assert(resolver);
 
   resolver->harden(dep);
+
+  l.release();
+  state_changed();
 }
 
 void resolver_manager::unharden_dep(const aptitude_resolver_dep &dep)
@@ -810,6 +819,9 @@
   assert(resolver);
 
   resolver->force_break(dep);
+
+  l.release();
+  state_changed();
 }
 
 void resolver_manager::unforce_break_dep(const aptitude_resolver_dep &dep)



More information about the Aptitude-svn-commit mailing list