summaryrefslogtreecommitdiffstats
path: root/pym/portage/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/portage/__init__.py')
-rw-r--r--pym/portage/__init__.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index 04294ce12..5e6e27521 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -4693,12 +4693,14 @@ def getmaskingstatus(mycpv, settings=None, portdb=None):
if matches:
inc_pgroups = []
for x in pgroups:
- if x != "-*" and x.startswith("-"):
+ if x == "-*":
+ inc_pgroups = []
+ elif x[0] == "-":
try:
inc_pgroups.remove(x[1:])
except ValueError:
pass
- if x not in inc_pgroups:
+ elif x not in inc_pgroups:
inc_pgroups.append(x)
pgroups = inc_pgroups
del inc_pgroups
@@ -4715,10 +4717,10 @@ def getmaskingstatus(mycpv, settings=None, portdb=None):
if gp=="*":
kmask=None
break
- elif gp=="-"+myarch:
+ elif gp=="-"+myarch and myarch in pgroups:
kmask="-"+myarch
break
- elif gp=="~"+myarch:
+ elif gp=="~"+myarch and myarch in pgroups:
kmask="~"+myarch
break