From 3b5dede734e19aeedca11327e1e2b8443ec55f81 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 25 Jul 2011 13:54:46 -0700 Subject: depgraph: make --exclude handle contradictions This makes contradictory things like `emerge -e @system --exclude gcc` work as expected. --- pym/_emerge/depgraph.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 9e3064d25..70f9a99dd 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -2289,7 +2289,10 @@ class depgraph(object): # specified on the command line. self._dynamic_config._pprovided_args.append((arg, atom)) continue - if pkg.installed and "selective" not in self._dynamic_config.myparams: + if pkg.installed and \ + "selective" not in self._dynamic_config.myparams and \ + not self._frozen_config.excluded_pkgs.findAtomForPackage( + pkg, modified_use=self._pkg_use_enabled(pkg)): self._dynamic_config._unsatisfied_deps_for_display.append( ((myroot, atom), {"myparent" : arg})) # Previous behavior was to bail out in this case, but @@ -3331,6 +3334,9 @@ class depgraph(object): """ if "selective" not in self._dynamic_config.myparams and \ pkg.root == self._frozen_config.target_root: + if self._frozen_config.excluded_pkgs.findAtomForPackage(pkg, + modified_use=self._pkg_use_enabled(pkg)): + return True try: next(self._iter_atoms_for_pkg(pkg)) except StopIteration: -- cgit v1.2.3-1-g7c22