From 2ab33392c6655b2fb8a004ea87162b0bca2f9527 Mon Sep 17 00:00:00 2001 From: Roger Zurawicki Date: Tue, 20 May 2025 13:16:52 -0400 Subject: [PATCH] Fix file name extraction from git diff --- src/util.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/util.rs b/src/util.rs index 25e5f97..7cb4532 100644 --- a/src/util.rs +++ b/src/util.rs @@ -28,9 +28,11 @@ impl SplitPrefixInclusive for str { /// /// If the diff is not of the expected form, then None is returned. pub(crate) fn get_file_name_from_diff(file_diff: &str) -> Option<&str> { - let (_, suffix) = file_diff.split_once("diff --git a/")?; - let (file_name, _) = suffix.split_once(' ')?; - Some(file_name) + let (_, suffix) = file_diff.split_once("diff --git ")?; + let mut parts = suffix.split_whitespace(); + let _old = parts.next()?; + let new = parts.next()?; + new.strip_prefix("b/") } #[cfg(test)] @@ -85,5 +87,12 @@ index 0000000..a51b2a6 ), Some("foo") ); + + assert_eq!( + get_file_name_from_diff( + "diff --git a/old_name b/new_name\n--- a/old_name\n+++ b/new_name" + ), + Some("new_name") + ); } }