summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/portage/__init__.py26
1 files changed, 17 insertions, 9 deletions
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index 6d28405d4..0f90e2dd6 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -1968,23 +1968,31 @@ class config:
for var in cur_use_expand:
var_lower = var.lower()
- if var not in myincrementals:
+ is_not_incremental = var not in myincrementals
+ if is_not_incremental:
prefix = var_lower + "_"
for x in list(myflags):
if x.startswith(prefix):
myflags.remove(x)
for x in curdb[var].split():
- # Any incremental USE_EXPAND variables have already been
- # processed, so leading +/- operators are invalid here.
if x[0] == "+":
- writemsg(colorize("BAD", "Invalid '+' operator in " + \
- "non-incremental variable '%s': '%s'\n" % (var, x)),
- noiselevel=-1)
+ if is_not_incremental:
+ writemsg(colorize("BAD", "Invalid '+' " + \
+ "operator in non-incremental variable " + \
+ "'%s': '%s'\n" % (var, x)), noiselevel=-1)
+ continue
+ else:
+ writemsg(colorize("BAD", "Invalid '+' " + \
+ "operator in incremental variable " + \
+ "'%s': '%s'\n" % (var, x)), noiselevel=-1)
x = x[1:]
if x[0] == "-":
- writemsg(colorize("BAD", "Invalid '-' operator in " + \
- "non-incremental variable '%s': '%s'\n" % (var, x)),
- noiselevel=-1)
+ if is_not_incremental:
+ writemsg(colorize("BAD", "Invalid '-' " + \
+ "operator in non-incremental variable " + \
+ "'%s': '%s'\n" % (var, x)), noiselevel=-1)
+ continue
+ myflags.discard(var_lower + "_" + x[1:])
continue
myflags.add(var_lower + "_" + x)