From 300654217eb5bfd5c6aaacc3f90ccec618239f75 Mon Sep 17 00:00:00 2001 From: Kieran Bingham Date: Tue, 7 Jan 2020 15:23:04 +0000 Subject: utils: checkstyle.py: Support single line hunks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The checkstyle script expects hunks to be declared with a start line and line count, however the unified diff format [0] declares that a single line hunk will only have the start line: > If a hunk contains just one line, only its start line number appears. > Otherwise its line numbers look like ‘start,count’. An empty hunk is > considered to start at the line that follows the hunk. [0] https://www.gnu.org/software/diffutils/manual/html_node/Detailed-Unified.html#Detailed-Unified Attempting to parse a single line hunk results in the following error: File "./utils/checkstyle.py", line 110, in __init__ raise RuntimeError("Malformed diff hunk header '%s'" % line) RuntimeError: Malformed diff hunk header '@@ -1 +1,2 @@ The DiffHunk class only makes use of the start line, and does not utilise the line count, thus update the regex to make the unused groups optional. Reviewed-by: Laurent Pinchart Signed-off-by: Kieran Bingham --- utils/checkstyle.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'utils') diff --git a/utils/checkstyle.py b/utils/checkstyle.py index 41cd3371..93f02911 100755 --- a/utils/checkstyle.py +++ b/utils/checkstyle.py @@ -102,7 +102,7 @@ class DiffHunkSide(object): class DiffHunk(object): - diff_header_regex = re.compile(r'@@ -([0-9]+),([0-9]+) \+([0-9]+),([0-9]+) @@') + diff_header_regex = re.compile(r'@@ -([0-9]+),?([0-9]+)? \+([0-9]+),?([0-9]+)? @@') def __init__(self, line): match = DiffHunk.diff_header_regex.match(line) -- cgit v1.2.1