]> granicus.if.org Git - clang/commitdiff
clang-format-diff.py: fix -regex/-iregex matching
authorAlp Toker <alp@nuanti.com>
Wed, 18 Dec 2013 21:34:07 +0000 (21:34 +0000)
committerAlp Toker <alp@nuanti.com>
Wed, 18 Dec 2013 21:34:07 +0000 (21:34 +0000)
While debating the finer points of file extension matching, we somehow missed
the bigger problem that the current code will match anything starting with the
default or user-specified pattern (e.g. lit.site.cfg.in).

Fix this by doing what find(1) does, implicitly wrapping the pattern with ^$.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197608 91177308-0d34-0410-b5e6-96231b3b80d8

tools/clang-format/clang-format-diff.py

index 5cece8db9e57c120e05bcfd8a77b84fbd92eac03..fee16d0e7c62f184558bd97efd3b47bd64f3571b 100755 (executable)
@@ -43,7 +43,7 @@ def main():
                       help='apply edits to files instead of displaying a diff')
   parser.add_argument('-p', metavar='NUM', default=0,
                       help='strip the smallest prefix containing P slashes')
-  parser.add_argument('-regex', metavar='PATTERN', default='',
+  parser.add_argument('-regex', metavar='PATTERN', default=None,
                       help='custom pattern selecting file paths to reformat '
                       '(case sensitive, override -iregex)')
   parser.add_argument('-iregex', metavar='PATTERN', default=
@@ -66,11 +66,11 @@ def main():
     if filename == None:
       continue
 
-    if args.regex != '':
-      if not re.match(args.regex, filename):
+    if args.regex is not None:
+      if not re.match('^%s$' % args.regex, filename):
         continue
     else:
-      if not re.match(args.iregex, filename, re.IGNORECASE):
+      if not re.match('^%s$' % args.iregex, filename, re.IGNORECASE):
         continue
 
     match = re.search('^@@.*\+(\d+)(,(\d+))?', line)