Merge with head. style.py was also missing an argument in one call to modified_lines.
authorGabe Black <gblack@eecs.umich.edu>
Sun, 29 Jul 2007 08:38:07 +0000 (01:38 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Sun, 29 Jul 2007 08:38:07 +0000 (01:38 -0700)
--HG--
extra : convert_revision : 0f4e23007399f9d0e2be5310062bd61f5415550d

util/style.py

index 897617779b29ee5ccd18a78e5457a6ed350027ee..3d733638838b266a441bf76a5f4496b31fe8b52b 100644 (file)
@@ -244,7 +244,7 @@ def validate(filename, stats, verbose, exit_code):
                     msg(i, line, 'improper spacing after %s' % match.group(1))
                 bad()
 
-def modified_lines(old_data, new_data):
+def modified_lines(old_data, new_data, max_lines):
     from itertools import count
     from mercurial import bdiff, mdiff
 
@@ -256,6 +256,8 @@ def modified_lines(old_data, new_data):
                 modified.add(i)
             elif i + 1 >= fend:
                 break
+            elif i > max_lines:
+                break
     return modified
 
 def check_whitespace(ui, repo, hooktype, node, parent1, parent2):
@@ -301,13 +303,14 @@ def check_whitespace(ui, repo, hooktype, node, parent1, parent2):
         assert len(pctx) in (1, 2)
 
         file_data = fctx.data()
-        mod_lines = modified_lines(pctx[0].data(), file_data)
+        lines = mdiff.splitnewlines(file_data)
+        mod_lines = modified_lines(pctx[0].data(), file_data, len(lines))
         if len(pctx) == 2:
-            m2 = modified_lines(pctx[1].data(), file_data)
+            m2 = modified_lines(pctx[1].data(), file_data, len(lines))
             mod_lines = mod_lines & m2 # only the lines that are new in both
 
         fixonly = set()
-        for i,line in enumerate(mdiff.splitnewlines(file_data)):
+        for i,line in enumerate(lines):
             if i not in mod_lines:
                 continue