diff options
-rw-r--r-- | pym/portage.py | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/pym/portage.py b/pym/portage.py index 676eee148..03733fa91 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -1894,23 +1894,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) |