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") + ); } }