summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-10-15 02:28:54 -0700
committerZac Medico <zmedico@gentoo.org>2010-10-15 03:06:29 -0700
commit4c5d916b96cc5a0ecfa82397f6c35fe0cba8499a (patch)
tree6dae608a054230cd8d701e766b12ffddbf37c0a9 /pym
parent64751923ebb1f59e3690fb5640e8ae5a19b7a5b2 (diff)
downloadportage-4c5d916b96cc5a0ecfa82397f6c35fe0cba8499a.tar.gz
portage-4c5d916b96cc5a0ecfa82397f6c35fe0cba8499a.tar.bz2
portage-4c5d916b96cc5a0ecfa82397f6c35fe0cba8499a.zip
Fix use_reduce + opconvert of "A || ( B C )".
Diffstat (limited to 'pym')
-rw-r--r--pym/portage/dep/__init__.py5
-rw-r--r--pym/portage/tests/dep/test_use_reduce.py10
2 files changed, 8 insertions, 7 deletions
diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py
index d9f6a2155..010d88351 100644
--- a/pym/portage/dep/__init__.py
+++ b/pym/portage/dep/__init__.py
@@ -453,7 +453,10 @@ def use_reduce(depstr, uselist=[], masklist=[], matchall=False, excludeall=[], i
else:
stack[level].extend(l)
else:
- stack[level].append(l)
+ if opconvert and stack[level] and stack[level][-1] == '||':
+ stack[level][-1] = ['||'] + l
+ else:
+ stack[level].append(l)
if l and not ignore:
#The current list is not empty and we don't want to ignore it because
diff --git a/pym/portage/tests/dep/test_use_reduce.py b/pym/portage/tests/dep/test_use_reduce.py
index 162d7cdf2..32a9e50d5 100644
--- a/pym/portage/tests/dep/test_use_reduce.py
+++ b/pym/portage/tests/dep/test_use_reduce.py
@@ -304,12 +304,10 @@ class UseReduce(TestCase):
"|| ( A B ) C",
opconvert = True,
expected_result = [['||', 'A', 'B'], 'C']),
-
- # ['A', '||', ['B', 'C']] != ['A', ['||', 'B', 'C']]
- #UseReduceTestCase(
- # "A || ( B C )",
- # opconvert = True,
- # expected_result = ['A', ['||', 'B', 'C']]),
+ UseReduceTestCase(
+ "A || ( B C )",
+ opconvert = True,
+ expected_result = ['A', ['||', 'B', 'C']]),
UseReduceTestCase(
"|| ( A )",