diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-10-14 11:37:19 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-10-14 11:37:19 -0700 |
commit | 3e2ec5f537d72e27336b3416eb8b53e56c68ae5a (patch) | |
tree | e8ca4b9a9b3aadf40efcf0c2b0270a046f0e090f | |
parent | b0d6bfe884cc1ba4d81e0673be5ef0f966cf93d4 (diff) | |
download | portage-3e2ec5f537d72e27336b3416eb8b53e56c68ae5a.tar.gz portage-3e2ec5f537d72e27336b3416eb8b53e56c68ae5a.tar.bz2 portage-3e2ec5f537d72e27336b3416eb8b53e56c68ae5a.zip |
Fix use_reduce() case from bug #340973.
-rw-r--r-- | pym/portage/dep/__init__.py | 7 | ||||
-rw-r--r-- | pym/portage/tests/dep/test_use_reduce.py | 11 |
2 files changed, 10 insertions, 8 deletions
diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py index b829e8045..4de9c8422 100644 --- a/pym/portage/dep/__init__.py +++ b/pym/portage/dep/__init__.py @@ -441,8 +441,11 @@ def use_reduce(depstr, uselist=[], masklist=[], matchall=False, excludeall=[], i if opconvert and ends_in_any_of_dep(level): #In opconvert mode, we have to move the operator from the level #above into the current list. - stack[level].pop() - stack[level].append(["||"] + l) + if l[0] == '||': + stack[level].extend(l[1:]) + else: + stack[level].pop() + stack[level].append(["||"] + l) else: special_append() diff --git a/pym/portage/tests/dep/test_use_reduce.py b/pym/portage/tests/dep/test_use_reduce.py index b9551db61..ac7b585be 100644 --- a/pym/portage/tests/dep/test_use_reduce.py +++ b/pym/portage/tests/dep/test_use_reduce.py @@ -342,12 +342,11 @@ class UseReduce(TestCase): uselist = ["foo"], opconvert = True, expected_result = ["A", "B"]), - # FIXME: Bug #340973: [['||', '||', 'A', 'B']] != ["||", "A", "B"] - #UseReduceTestCase( - # "|| ( foo? ( || ( A B ) ) )", - # uselist = ["foo"], - # opconvert = True, - # expected_result = ["||", "A", "B"]), + UseReduceTestCase( + "|| ( foo? ( || ( A B ) ) )", + uselist = ["foo"], + opconvert = True, + expected_result = ["||", "A", "B"]), #flat test UseReduceTestCase( |