dtolnay / dissimilar

Diff library with semantic cleanup, based on Google's diff-match-patch

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

A Japanese character is deleted when it shouldn't be

faassen opened this issue · comments

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.

Fixed in 1.0.6.

I also added a new fuzzer which would have caught this.