Author: schubi2 Date: Wed Aug 8 12:41:55 2007 New Revision: 6517 URL: http://svn.opensuse.org/viewcvs/zypp?rev=6517&view=rev Log: fix in "ignore conflicts" if the conflict has been caused by an obsolete # 297795 Modified: trunk/libzypp/zypp/solver/detail/SolutionAction.cc Modified: trunk/libzypp/zypp/solver/detail/SolutionAction.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/solver/detail/SolutionAction.cc?rev=6517&r1=6516&r2=6517&view=diff ============================================================================== --- trunk/libzypp/zypp/solver/detail/SolutionAction.cc (original) +++ trunk/libzypp/zypp/solver/detail/SolutionAction.cc Wed Aug 8 12:41:55 2007 @@ -177,16 +177,38 @@ switch (_kind) { case CONFLICTS: // removing conflict in both resolvables - if (depList.find(_capability) != depList.end()) - { - resolver.addIgnoreConflict (_item, _capability); + for (CapSet::const_iterator iter = depList.begin(); iter != depList.end(); iter++) { + if (iter->matches (_capability) != CapMatch::yes ) + { + resolver.addIgnoreConflict (_item, _capability); + } } + // Obsoletes are conflicts too + depList = dependencies[Dep::OBSOLETES]; + for (CapSet::const_iterator iter = depList.begin(); iter != depList.end(); iter++) { + if (iter->matches (_capability) != CapMatch::yes ) + { + resolver.addIgnoreConflict (_otherItem, _capability); + } + } + dependencies = _otherItem.resolvable()->deps(); depList = dependencies[Dep::CONFLICTS]; - if (depList.find(_capability) != depList.end()) - { - resolver.addIgnoreConflict (_otherItem, _capability); + for (CapSet::const_iterator iter = depList.begin(); iter != depList.end(); iter++) { + if (iter->matches (_capability) != CapMatch::yes ) + { + resolver.addIgnoreConflict (_otherItem, _capability); + } + } + // Obsoletes are conflicts too + depList = dependencies[Dep::OBSOLETES]; + for (CapSet::const_iterator iter = depList.begin(); iter != depList.end(); iter++) { + if (iter->matches (_capability) != CapMatch::yes ) + { + resolver.addIgnoreConflict (_otherItem, _capability); + } } + break; case REQUIRES: // removing the requires dependency from the item -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org