From 70407d883126580b429ef86316250363c4794fef Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Fri, 12 Feb 2016 21:05:33 +0000 Subject: filter-active: Fix filtering of issue files Removing items from a list while iterating over it results in items being skipped in the iteration, so it is possible that we will keep file names that should have been filtered out. git-svn-id: svn+ssh://svn.debian.org/svn/kernel-sec@4152 e094ebfe-e918-0410-adfb-c712417f3574 --- scripts/filter-active.py | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) (limited to 'scripts') diff --git a/scripts/filter-active.py b/scripts/filter-active.py index 1d2470e9..7b8cde42 100755 --- a/scripts/filter-active.py +++ b/scripts/filter-active.py @@ -38,25 +38,21 @@ class issue(deb822.Deb822): releases.append(field) return releases -def filter_issue_names(L): - ignorePatterns = [re.compile('.*~$'), - re.compile('^#.*'), - re.compile('^00.*')] - for issue in L: - for p in ignorePatterns: - if p.match(issue): - L.remove(issue) - break - return L +ignorePatterns = [re.compile('.*~$'), + re.compile('^#.*'), + re.compile('^00.*')] + +def ignore_issue_name(issue): + for p in ignorePatterns: + if p.match(issue): + return True + return False def get_issues(dir): issues = [] - L = os.listdir(dir) - for f in L: - if os.path.isdir(os.path.join(dir, f)): - L.remove(f) - - L = filter_issue_names(L) + L = [f for f in os.listdir(dir) + if not os.path.isdir(os.path.join(dir, f)) + and not ignore_issue_name(f)] L.sort() return [ issue(os.path.join(dir, f)) for f in L ] -- cgit v1.2.3