- // when diffmatchpatch says [=yyyyXXXX, delX, =zzz],
- // we really want [=yyyy, delX, =XXXXzzz] (ditto for
- // ins instead of del)
- if i < len(in)-2 &&
- d.Type == diffmatchpatch.DiffEqual &&
- in[i+1].Type != diffmatchpatch.DiffEqual &&
- in[i+2].Type == diffmatchpatch.DiffEqual &&
- len(in[i+1].Text) <= len(d.Text) {
- for cut := 0; cut < len(d.Text); cut++ {
- skip := strings.Index(d.Text[cut:], in[i+1].Text)
- if skip < 0 {
- break
- }
- cut += skip
- if d.Text[cut:]+in[i+1].Text == in[i+1].Text+d.Text[cut:] {
- in[i+2].Text = d.Text[cut:] + in[i+2].Text
- d.Text = d.Text[:cut]
- break
- }
- }
- }