[kernel] r15913 - dists/sid/linux-2.6/debian/bin

Bastian Blank waldi at alioth.debian.org
Sun Jun 27 13:32:06 UTC 2010


Author: waldi
Date: Sun Jun 27 13:31:54 2010
New Revision: 15913

Log:
debian/bin/buildcheck.py
- Use stricter pattern patch.
- Support pattern for module matches.

Modified:
   dists/sid/linux-2.6/debian/bin/buildcheck.py

Modified: dists/sid/linux-2.6/debian/bin/buildcheck.py
==============================================================================
--- dists/sid/linux-2.6/debian/bin/buildcheck.py	Sun Jun 27 01:02:45 2010	(r15912)
+++ dists/sid/linux-2.6/debian/bin/buildcheck.py	Sun Jun 27 13:31:54 2010	(r15913)
@@ -17,6 +17,14 @@
             self.symbol = symbol
             self.symbol_ref = symbol_ref or symbol
 
+        @property
+        def module(self):
+            return self.symbol.module
+
+        @property
+        def name(self):
+            return self.symbol.name
+
         def write(self, out, ignored):
             info = []
             if ignored:
@@ -116,6 +124,17 @@
 
         return symbols, add, change, remove
 
+    def _ignore_pattern(self, pattern):
+        ret = []
+        for i in re.split(r'(\*\*?)', pattern):
+            if i == '*':
+                ret.append(r'[^!]+')
+            elif i == '**':
+                ret.append(r'.+')
+            elif i:
+                ret.append(re.escape(i))
+        return re.compile('^' + ''.join(ret) + '$')
+
     def _ignore(self, symbols):
         # TODO: let config merge this lists
         configs = []
@@ -132,18 +151,17 @@
 
         filtered = set()
         for ignore in ignores:
-            type = 'symbolmatch'
+            type = 'name'
             if ':' in ignore:
                 type, ignore = ignore.split(':')
-            if type == 'symbolmatch':
-                filtered.update(fnmatch.filter(symbols.iterkeys(), ignore))
-            elif type == 'module':
+            if type in ('name', 'module'):
+                p = self._ignore_pattern(ignore)
                 for symbol in symbols.itervalues():
-                    symbol = symbol.symbol
-                    if symbol.module == ignore:
+                    if p.match(getattr(symbol, type)):
                         filtered.add(symbol.name)
             else:
                 raise NotImplementedError
+
         return filtered
  
 



More information about the Kernel-svn-changes mailing list