-
Notifications
You must be signed in to change notification settings - Fork 34
Open
Description
This crate seems to fail if either the patch text or the text being patched contain Windows line endings. For example, the following test cases:
let text_lf = "Allomancy\nFeruchemy\n";
let text_crlf = "Allomancy\r\nFeruchemy\r\n";
let patch_lf =
"\
--- original\n\
+++ modified\n\
@@ -1,2 +1,3 @@\n Allomancy\n Feruchemy\n+Hemalurgy\n";
let patch_crlf =
"\
--- original\r\n\
+++ modified\r\n\
@@ -1,2 +1,3 @@\r\n Allomancy\r\n Feruchemy\r\n+Hemalurgy\r\n";
let p_lf = Patch::from_str(&patch_lf).unwrap();
let p_crlf = Patch::from_str(&patch_crlf);
assert!(diffy::apply(text_lf, &p_lf).is_ok()); // OK
assert!(p_crlf.is_ok()); // ParsePatchError("invalid char in unquoted filename")
assert!(diffy::apply(text_crlf, &p_lf).is_ok()); // ApplyError(1)The latter two asserts fail. Would you be open to supporting Windows line endings in this crate? I'd be happy to PR if one is welcome.
Metadata
Metadata
Assignees
Labels
No labels