From 6f43e0a1f88fe4a8835be2bcbb70b50d3009e598 Mon Sep 17 00:00:00 2001 From: DuProcess <273172371+DuProcess@users.noreply.github.com> Date: Thu, 16 Jul 2026 20:20:53 -0400 Subject: [PATCH] Treat Windows drive paths as local copy endpoints --- src/file_transfer.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/file_transfer.rs b/src/file_transfer.rs index 379aad2..03165db 100644 --- a/src/file_transfer.rs +++ b/src/file_transfer.rs @@ -263,10 +263,7 @@ pub fn ensure_relative_child(path: &Path) -> Result { fn looks_like_windows_path(raw: &str) -> bool { let bytes = raw.as_bytes(); - bytes.len() >= 3 - && bytes[0].is_ascii_alphabetic() - && bytes[1] == b':' - && (bytes[2] == b'\\' || bytes[2] == b'/') + bytes.len() >= 2 && bytes[0].is_ascii_alphabetic() && bytes[1] == b':' } #[cfg(test)] @@ -314,6 +311,14 @@ mod tests { parse_copy_endpoint("C:\\Users\\palav\\x"), CopyEndpoint::Local(PathBuf::from("C:\\Users\\palav\\x")) ); + assert_eq!( + parse_copy_endpoint("C:/Users/palav/x"), + CopyEndpoint::Local(PathBuf::from("C:/Users/palav/x")) + ); + assert_eq!( + parse_copy_endpoint("C:relative\\x"), + CopyEndpoint::Local(PathBuf::from("C:relative\\x")) + ); } #[test]