A Japanese character is deleted when it shouldn't be
faassen opened this issue · comments
Martijn Faassen commented
This test case fails:
#[test]
fn test_diff_problem() {
let text_a = "A のダ";
let text_b = "A ダ";
let chunks = diff(text_a, text_b);
assert_eq!(
chunks,
vec![Chunk::Equal("A "), Chunk::Delete("の"), Chunk::Equal("ダ")]
);
}
with this message:
left: `[Equal("A "), Delete("のダ")]`,
right: `[Equal("A "), Delete("の"), Equal("ダ")]`
Apparently ダ
is deleted even though it shouldn't be.
David Tolnay commented
Fixed in 1.0.6.
I also added a new fuzzer which would have caught this.