diff options
Diffstat (limited to 'src/handlers/hunk_header.rs')
| -rw-r--r-- | src/handlers/hunk_header.rs | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/handlers/hunk_header.rs b/src/handlers/hunk_header.rs index 34f6d86..9ad2cb3 100644 --- a/src/handlers/hunk_header.rs +++ b/src/handlers/hunk_header.rs @@ -235,7 +235,7 @@ lazy_static! { fn parse_hunk_header(line: &str) -> Option<ParsedHunkHeader> { if let Some(caps) = HUNK_HEADER_REGEX.captures(line) { let file_coordinates = &caps[1]; - let line_numbers_and_hunk_lengths = HUNK_HEADER_FILE_COORDINATE_REGEX + let line_numbers_and_hunk_lengths: Vec<(usize, usize)> = HUNK_HEADER_FILE_COORDINATE_REGEX .captures_iter(file_coordinates) .map(|caps| { ( @@ -249,11 +249,15 @@ fn parse_hunk_header(line: &str) -> Option<ParsedHunkHeader> { ) }) .collect(); - let code_fragment = caps[2].to_string(); - Some(ParsedHunkHeader { - code_fragment, - line_numbers_and_hunk_lengths, - }) + if line_numbers_and_hunk_lengths.is_empty() { + None + } else { + let code_fragment = caps[2].to_string(); + Some(ParsedHunkHeader { + code_fragment, + line_numbers_and_hunk_lengths, + }) + } } else { None } @@ -457,6 +461,12 @@ pub mod tests { } #[test] + fn test_parse_hunk_header_with_no_hunk_lengths() { + let result = parse_hunk_header("@@ @@\n"); + assert_eq!(result, None); + } + + #[test] fn test_parse_hunk_header_added_file() { let ParsedHunkHeader { code_fragment, |
