From 17917af467622d8c528885929009e749ed1f7bef Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 20 Oct 2008 00:44:52 +0000 Subject: Revert previous 2 commits since they broke "selective" behavior. svn path=/main/trunk/; revision=11704 --- pym/_emerge/__init__.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'pym/_emerge') diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 9d260ebd6..03ee50eca 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -5417,17 +5417,20 @@ class depgraph(object): # Therefore, "selective" logic does not consider # whether or not an installed package matches an # argument atom. It only considers whether or not - # available packages match argument atoms. + # available packages match argument atoms, which is + # represented by the found_available_arg flag. + found_available_arg = False for find_existing_node in True, False: if existing_node: break for db, pkg_type, built, installed, db_keys in dbs: if existing_node: break - if not find_existing_node and \ - installed and matched_packages and \ - (reinstall or empty or not selective): - continue + if installed and not find_existing_node: + want_reinstall = reinstall or empty or \ + (found_available_arg and not selective) + if want_reinstall and matched_packages: + continue if hasattr(db, "xmatch"): cpv_list = db.xmatch("match-all", atom) else: @@ -5565,6 +5568,8 @@ class depgraph(object): if not installed: # masked by corruption continue + if not installed and myarg: + found_available_arg = True if atom.use and not pkg.built: use = pkg.use.enabled -- cgit v1.2.3-1-g7c22