[libcamera-devel] [PATCH 2/2] utils: checkstyle.py: Support single line hunks

Kieran Bingham kieran.bingham at ideasonboard.com
Tue Jan 7 16:44:41 CET 2020


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, along with its comma separator.

Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
---
 utils/checkstyle.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/utils/checkstyle.py b/utils/checkstyle.py
index 41cd3371e81e..ab3b977358c7 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)
-- 
2.20.1



More information about the libcamera-devel mailing list