summaryrefslogtreecommitdiffstats
path: root/pym/portage_dep.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-03-28 12:08:27 +0000
committerZac Medico <zmedico@gentoo.org>2008-03-28 12:08:27 +0000
commit20324ca59e2fb1d2d0b5b8396eb9532a9602446e (patch)
tree6b9bc189603c939087c22c6c73b229ce1ce4bc76 /pym/portage_dep.py
parent3409b9c16afd9ff63864a1e96005fc5f0bec7027 (diff)
downloadportage-20324ca59e2fb1d2d0b5b8396eb9532a9602446e.tar.gz
portage-20324ca59e2fb1d2d0b5b8396eb9532a9602446e.tar.bz2
portage-20324ca59e2fb1d2d0b5b8396eb9532a9602446e.zip
When in strict mode, make paren_reduce() detect missing whitespace around
parenthesis tokens and raise an InvalidDependString exception. Strict mode is not enabled when handling installed packages, so this will only affect repoman and packages that haven't been installed yet. Thanks to zlin for reporting. (trunk r9471) svn path=/main/branches/2.1.2/; revision=9556
Diffstat (limited to 'pym/portage_dep.py')
-rw-r--r--pym/portage_dep.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/pym/portage_dep.py b/pym/portage_dep.py
index 5bb9c0562..afcbfe6fa 100644
--- a/pym/portage_dep.py
+++ b/pym/portage_dep.py
@@ -46,6 +46,8 @@ def strip_empty(myarr):
"""
return [x for x in myarr if x]
+_paren_whitespace_re = re.compile(r'\S(\(|\))|(\(|\))\S')
+
def paren_reduce(mystr,tokenize=1):
"""
Take a string and convert all paren enclosed entities into sublists, optionally
@@ -64,6 +66,12 @@ def paren_reduce(mystr,tokenize=1):
@rtype: Array
@return: The reduced string in an array
"""
+ global _dep_check_strict, _paren_whitespace_re
+ if _dep_check_strict:
+ m = _paren_whitespace_re.search(mystr)
+ if m is not None:
+ raise portage_exception.InvalidDependString(
+ "missing space by parenthesis: '%s'" % m.group(0))
mylist = []
while mystr:
left_paren = mystr.find("(")