From 580c6336f3240a11d6d20bbdf6d7a26a183a6710 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Mon, 19 Dec 2011 00:05:43 +0100 Subject: [PATCH] Fix filtering for regular expressions in dependencies. --- python/pakfire/packages/make.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/python/pakfire/packages/make.py b/python/pakfire/packages/make.py index 9380e3ce5..6d20a6c5c 100644 --- a/python/pakfire/packages/make.py +++ b/python/pakfire/packages/make.py @@ -420,18 +420,37 @@ class MakefilePackage(MakefileBase): if not filters: return deps - filters = filters.splitlines() + _filters = [] filtered_deps = [] + # Compile all filters. + for filter in filters.splitlines(): + # Convert to raw string to make escaping characters + # easy to the user. + try: + _filter = re.compile("%r" % filter) + except re.error: + log.warning(_("Regular experession is invalid and has been skipped: %s") % filter) + continue + + _filters.append(_filter) + + filters = _filters + for dep in deps: filtered = False for filter in filters: + # Search for a match anywhere in the line. m = re.search(filter, dep) if not m: continue + # Let the user know what has been done. + log.info(_("Filter %s filtered %s.") % (filter, dep)) + # Yes, we found a match. filtered = True + break if not filtered: filtered_deps.append(dep) -- 2.39.5