shithub: libvpx

Download patch

ref: 6e364a57c0bf7477b35284e7acbcf776e1d5ec3e
parent: e9fd1eace1c9b35733fa988d2f661fb16548e899
author: John Koleszar <jkoleszar@google.com>
date: Thu Oct 18 10:34:53 EDT 2012

lint-hunks: better support for working tree

When run with no arguments, report warnings in the diff between the
working tree and HEAD. With arguments, report warnings in the diff
between the named commit and its parents.

Change-Id: Ie10dcdecb303edf8af51bad645cc11206a1fc26b

--- a/tools/lint-hunks.py
+++ b/tools/lint-hunks.py
@@ -22,7 +22,7 @@
 
 TOPLEVEL_CMD = ["git", "rev-parse", "--show-toplevel"]
 DIFF_CMD = ["git", "diff"]
-DIFF_INDEX_CMD = ["git", "diff-index", "-u", "--cached", "HEAD", "--"]
+DIFF_INDEX_CMD = ["git", "diff-index", "-u", "HEAD", "--"]
 SHOW_CMD = ["git", "show"]
 CPPLINT_FILTERS = ["-readability/casting", "-runtime/int"]
 
@@ -106,11 +106,20 @@
         for filename, affected_lines in file_affected_line_map.iteritems():
             if filename.split(".")[-1] not in ("c", "h", "cc"):
                 continue
-            show_cmd = SHOW_CMD + [":" + filename]
-            show = Subprocess(show_cmd, stdout=subprocess.PIPE)
-            lint = Subprocess(cpplint_cmd, expected_returncode=(0, 1),
-                              stdin=show.stdout, stderr=subprocess.PIPE)
-            lint_out = lint.communicate()[1]
+
+            if args:
+                # File contents come from git
+                show_cmd = SHOW_CMD + [args[0] + ":" + filename]
+                show = Subprocess(show_cmd, stdout=subprocess.PIPE)
+                lint = Subprocess(cpplint_cmd, expected_returncode=(0, 1),
+                                  stdin=show.stdout, stderr=subprocess.PIPE)
+                lint_out = lint.communicate()[1]
+            else:
+                # File contents come from the working tree
+                lint = Subprocess(cpplint_cmd, expected_returncode=(0, 1),
+                                  stdin=subprocess.PIPE, stderr=subprocess.PIPE)
+                stdin = open(os.path.join(tl, filename)).read()
+                lint_out = lint.communicate(stdin)[1]
 
             for line in lint_out.split("\n"):
                 fields = line.split(":")