patch 9.1.0743: diff mode does not handle overlapping diffs correctly

Commit: 
https://github.com/vim/vim/commit/06fe70c183a53ea97cd42ace490d4fb9fd14f042
Author: Yukihiro Nakadaira <yukihiro.nakada...@gmail.com>
Date:   Thu Sep 26 16:19:42 2024 +0200

    patch 9.1.0743: diff mode does not handle overlapping diffs correctly
    
    Problem:  diff mode does not handle overlapping diffs correctly
    Solution: correct the logic to handle overlapping blocks
              (Yukihiro Nakadaira)
    
    Vim merges overlapped diff blocks and it doesn't work expectedly
    in some situation.
    
    closes: #15735
    
    Signed-off-by: Yukihiro Nakadaira <yukihiro.nakada...@gmail.com>
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/src/diff.c b/src/diff.c
index 70e281439..ebe409e5f 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -1803,7 +1803,10 @@ diff_read(
            {
                for (i = idx_orig; i < idx_new; ++i)
                    if (curtab->tp_diffbuf[i] != NULL)
+                   {
                        dp->df_lnum[i] -= off;
+                       dp->df_count[i] += off;
+                   }
                dp->df_lnum[idx_new] = hunk->lnum_new;
                dp->df_count[idx_new] = hunk->count_new;
            }
@@ -1815,9 +1818,7 @@ diff_read(
            }
            else
                // second overlap of new block with existing block
-               dp->df_count[idx_new] += hunk->count_new - hunk->count_orig
-                   + dpl->df_lnum[idx_orig] + dpl->df_count[idx_orig]
-                   - (dp->df_lnum[idx_orig] + dp->df_count[idx_orig]);
+               dp->df_count[idx_new] += hunk->count_new;
 
            // Adjust the size of the block to include all the lines to the
            // end of the existing block or the new diff, whatever ends last.
@@ -1825,10 +1826,8 @@ diff_read(
                         - (dpl->df_lnum[idx_orig] + dpl->df_count[idx_orig]);
            if (off < 0)
            {
-               // new change ends in existing block, adjust the end if not
-               // done already
-               if (notset)
-                   dp->df_count[idx_new] += -off;
+               // new change ends in existing block, adjust the end
+               dp->df_count[idx_new] += -off;
                off = 0;
            }
            for (i = idx_orig; i < idx_new; ++i)
diff --git a/src/testdir/dumps/Test_diff_overlapped_2.01.dump 
b/src/testdir/dumps/Test_diff_overlapped_2.01.dump
new file mode 100644
index 000000000..b5ed36e01
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_2.01.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@33||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@33
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@33||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@33
+|~+0#4040ff13#ffffff0| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|X+3#0000000&|d|i|f|i|l|e|1| @10|1|,|1| @11|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@10|1|,|1| @11|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_2.02.dump 
b/src/testdir/dumps/Test_diff_overlapped_2.02.dump
new file mode 100644
index 000000000..a20c33a5c
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_2.02.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@33||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@33
+| +0#0000e05#a8a8a8255@1|b+0#0000000#5fd7ff255| @33||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @33||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @33
+|~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|X+3#0000000&|d|i|f|i|l|e|1| @10|1|,|1| @11|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@10|1|,|1| @11|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_2.03.dump 
b/src/testdir/dumps/Test_diff_overlapped_2.03.dump
new file mode 100644
index 000000000..d3be5a1f4
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_2.03.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@33||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@33
+| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| 
+0#0000e05#a8a8a8255@1|x+0#0000000#5fd7ff255| @33
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @33||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @33
+|~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|~| @35||+1#0000000&|~+0#4040ff13&| @35
+|X+3#0000000&|d|i|f|i|l|e|1| @10|1|,|1| @11|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@10|1|,|1| @11|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.01.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.01.dump
new file mode 100644
index 000000000..c7d69c0e1
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.01.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.02.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.02.dump
new file mode 100644
index 000000000..70fde3124
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.02.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.03.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.03.dump
new file mode 100644
index 000000000..6c88b3e70
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.03.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+|~+0#4040ff13#ffffff0| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.04.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.04.dump
new file mode 100644
index 000000000..4c20e2513
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.04.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.05.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.05.dump
new file mode 100644
index 000000000..b1c48a38c
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.05.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+|~+0#4040ff13#ffffff0| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.06.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.06.dump
new file mode 100644
index 000000000..f863517c4
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.06.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+|~+0#4040ff13#ffffff0| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.07.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.07.dump
new file mode 100644
index 000000000..bb339ae2f
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.07.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@20
+|~+0#4040ff13#ffffff0| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.08.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.08.dump
new file mode 100644
index 000000000..b50ceb6e5
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.08.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+|~+0#4040ff13#ffffff0| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.09.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.09.dump
new file mode 100644
index 000000000..d981dc126
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.09.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.10.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.10.dump
new file mode 100644
index 000000000..29ed9dc00
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.10.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.11.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.11.dump
new file mode 100644
index 000000000..100724f8f
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.11.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|e+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|e+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+|~+0#4040ff13#ffffff0| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.12.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.12.dump
new file mode 100644
index 000000000..ac954911d
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.12.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.13.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.13.dump
new file mode 100644
index 000000000..20319c4f5
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.13.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.14.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.14.dump
new file mode 100644
index 000000000..8cfb94868
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.14.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|e+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|e+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+|~+0#4040ff13#ffffff0| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.15.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.15.dump
new file mode 100644
index 000000000..ecd536ece
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.15.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.16.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.16.dump
new file mode 100644
index 000000000..5f2a259c7
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.16.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.17.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.17.dump
new file mode 100644
index 000000000..b72eea2e4
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.17.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|e+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|e+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+|~+0#4040ff13#ffffff0| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.18.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.18.dump
new file mode 100644
index 000000000..7b6beb981
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.18.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+|~+0#4040ff13#ffffff0| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.19.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.19.dump
new file mode 100644
index 000000000..07543075d
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.19.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|d+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|d+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|d+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.20.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.20.dump
new file mode 100644
index 000000000..cccb3637b
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.20.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|d+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|d+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|d+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.21.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.21.dump
new file mode 100644
index 000000000..26d823266
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.21.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+|~+0#4040ff13#ffffff0| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.22.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.22.dump
new file mode 100644
index 000000000..3e917dd2f
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.22.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.23.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.23.dump
new file mode 100644
index 000000000..34bc41c0c
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.23.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffd7ff255| @21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffd7ff255| @20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.24.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.24.dump
new file mode 100644
index 000000000..9034e127d
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.24.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffd7ff255| @21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffd7ff255| @20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+|~+0&#ffffff0| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&| 
+0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@21
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|0|,|0|-|1| @3|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.25.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.25.dump
new file mode 100644
index 000000000..4e0015454
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.25.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.26.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.26.dump
new file mode 100644
index 000000000..efdb1fc4b
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.26.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+|~+0&#ffffff0| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| 
@22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.27.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.27.dump
new file mode 100644
index 000000000..381a8231e
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.27.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+|~+0&#ffffff0| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| 
@22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.28.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.28.dump
new file mode 100644
index 000000000..adb40057d
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.28.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|a+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.29.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.29.dump
new file mode 100644
index 000000000..eb36fde04
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.29.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffd7ff255| @21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffd7ff255| @20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.30.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.30.dump
new file mode 100644
index 000000000..8b73090b8
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.30.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.31.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.31.dump
new file mode 100644
index 000000000..198c3f620
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.31.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.32.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.32.dump
new file mode 100644
index 000000000..de7db88bc
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.32.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|e+0#0000000#ffd7ff255| @21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffd7ff255| @20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+|~+0&#ffffff0| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| 
@22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.33.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.33.dump
new file mode 100644
index 000000000..4e7cd0816
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.33.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.34.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.34.dump
new file mode 100644
index 000000000..6eec9fc7b
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.34.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.35.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.35.dump
new file mode 100644
index 000000000..202f873e5
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.35.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffd7ff255| @20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|d+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+| +0#0000e05#a8a8a8255@1|e+0#0000000#ffd7ff255| @21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|e+0#0000000#ffd7ff255| @20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
+|~+0&#ffffff0| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| 
@22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.36.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.36.dump
new file mode 100644
index 000000000..b52690354
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.36.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|y+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@22||+1#0000000#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21||+1#0000000#ffffff0| 
+0#0000e05#a8a8a8255@1|b+0#0000000#5fd7ff255| @20
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_overlapped_3.37.dump 
b/src/testdir/dumps/Test_diff_overlapped_3.37.dump
new file mode 100644
index 000000000..9c3a0ccf4
--- /dev/null
+++ b/src/testdir/dumps/Test_diff_overlapped_3.37.dump
@@ -0,0 +1,20 @@
+| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @20
+| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@21||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|x+2#0000000#ff404010| +0&#ffd7ff255@20||+1&#ffffff0| 
+0#0000e05#a8a8a8255@1|b+2#0000000#ff404010| +0&#ffd7ff255@20
+| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@22||+1#0000000#ffffff0| 
+0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21||+1#0000000#ffffff0| 
+0#0000e05#a8a8a8255@1|y+0#0000000#5fd7ff255| @20
+| +0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @21||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @20||+1&&| 
+0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| @20
+|~+0#4040ff13&| @23||+1#0000000&|~+0#4040ff13&| 
@22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
+|X+3#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X+1&&|d|i|f|i|l|e|2| 
@3|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|:+0&&> @73
diff --git a/src/testdir/test_diffmode.vim b/src/testdir/test_diffmode.vim
index c391f2dc8..7e117a3b6 100644
--- a/src/testdir/test_diffmode.vim
+++ b/src/testdir/test_diffmode.vim
@@ -845,6 +845,15 @@ func WriteDiffFiles(buf, list1, list2)
   endif
 endfunc
 
+func WriteDiffFiles3(buf, list1, list2, list3)
+  call writefile(a:list1, 'Xdifile1')
+  call writefile(a:list2, 'Xdifile2')
+  call writefile(a:list3, 'Xdifile3')
+  if a:buf
+    call term_sendkeys(a:buf, ":checktime\<CR>")
+  endif
+endfunc
+
 " Verify a screendump with both the internal and external diff.
 func VerifyBoth(buf, dumpfile, extra)
   " trailing : for leaving the cursor on the command line
@@ -2050,4 +2059,203 @@ func Test_diff_eob_halfpage()
   %bwipe!
 endfunc
 
+func Test_diff_overlapped_diff_blocks_will_be_merged()
+  CheckScreendump
+
+  let lines =<< trim END
+    func DiffExprStub()
+      let txt_in = readfile(v:fname_in)
+      let txt_new = readfile(v:fname_new)
+      if txt_in == ["line1"] && txt_new == ["line2"]
+        call writefile(["1c1"], v:fname_out)
+      elseif txt_in == readfile("Xdiin1") && txt_new == readfile("Xdinew1")
+        call writefile(readfile("Xdiout1"), v:fname_out)
+      elseif txt_in == readfile("Xdiin2") && txt_new == readfile("Xdinew2")
+        call writefile(readfile("Xdiout2"), v:fname_out)
+      endif
+    endfunc
+  END
+  call writefile(lines, 'XdiffSetup', 'D')
+
+  call WriteDiffFiles(0, [], [])
+  let buf = RunVimInTerminal('-d -S XdiffSetup Xdifile1 Xdifile2', {})
+  call term_sendkeys(buf, ":set autoread\<CR>\<c-w>w:set autoread\<CR>\<c-w>w")
+
+  call WriteDiffFiles(buf, ["a", "b"], ["x", "x"])
+  call writefile(["a", "b"], "Xdiin1")
+  call writefile(["x", "x"], "Xdinew1")
+  call writefile(["1c1", "2c2"], "Xdiout1")
+  call term_sendkeys(buf, ":set diffexpr=DiffExprStub()\<CR>:")
+  call VerifyBoth(buf, "Test_diff_overlapped_2.01", "")
+  call term_sendkeys(buf, ":set diffexpr&\<CR>:")
+
+  call WriteDiffFiles(buf, ["a", "b", "c"], ["x", "c"])
+  call writefile(["a", "b", "c"], "Xdiin1")
+  call writefile(["x", "c"], "Xdinew1")
+  call writefile(["1c1", "2d1"], "Xdiout1")
+  call term_sendkeys(buf, ":set diffexpr=DiffExprStub()\<CR>:")
+  call VerifyBoth(buf, "Test_diff_overlapped_2.02", "")
+  call term_sendkeys(buf, ":set diffexpr&\<CR>:")
+
+  call WriteDiffFiles(buf, ["a", "c"], ["x", "x", "c"])
+  call writefile(["a", "c"], "Xdiin1")
+  call writefile(["x", "x", "c"], "Xdinew1")
+  call writefile(["1c1", "1a2"], "Xdiout1")
+  call term_sendkeys(buf, ":set diffexpr=DiffExprStub()\<CR>:")
+  call VerifyBoth(buf, "Test_diff_overlapped_2.03", "")
+  call term_sendkeys(buf, ":set diffexpr&\<CR>:")
+
+  call StopVimInTerminal(buf)
+  wincmd c
+
+  call WriteDiffFiles3(0, [], [], [])
+  let buf = RunVimInTerminal('-d -S XdiffSetup Xdifile1 Xdifile2 Xdifile3', {})
+  call term_sendkeys(buf, ":set autoread\<CR>\<c-w>w:set 
autoread\<CR>\<c-w>w:set autoread\<CR>\<c-w>w")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c"], ["a", "x", "c"], ["y", "b", "c"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.01", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c"], ["a", "x", "c"], ["a", "y", "c"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.02", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c"], ["a", "x", "c"], ["a", "b", "y"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.03", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c"], ["a", "x", "c"], ["y", "y", "c"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.04", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c"], ["a", "x", "c"], ["a", "y", "y"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.05", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c"], ["a", "x", "c"], ["y", "y", "y"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.06", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c"], ["a", "x", "x"], ["y", "y", "c"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.07", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c"], ["x", "x", "c"], ["a", "y", "y"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.08", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d", "e"], ["a", "x", "c", "x", 
"e"], ["y", "y", "y", "d", "e"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.09", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d", "e"], ["a", "x", "c", "x", 
"e"], ["y", "y", "y", "y", "e"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.10", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d", "e"], ["a", "x", "c", "x", 
"e"], ["y", "y", "y", "y", "y"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.11", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d", "e"], ["a", "x", "c", "x", 
"e"], ["a", "y", "y", "d", "e"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.12", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d", "e"], ["a", "x", "c", "x", 
"e"], ["a", "y", "y", "y", "e"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.13", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d", "e"], ["a", "x", "c", "x", 
"e"], ["a", "y", "y", "y", "y"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.14", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d", "e"], ["a", "x", "c", "x", 
"e"], ["a", "b", "y", "d", "e"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.15", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d", "e"], ["a", "x", "c", "x", 
"e"], ["a", "b", "y", "y", "e"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.16", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d", "e"], ["a", "x", "c", "x", 
"e"], ["a", "b", "y", "y", "y"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.17", "")
+
+  call WriteDiffFiles3(buf, ["a", "b"], ["x", "b"], ["y", "y"])
+  call writefile(["a", "b"], "Xdiin1")
+  call writefile(["x", "b"], "Xdinew1")
+  call writefile(["1c1"], "Xdiout1")
+  call writefile(["a", "b"], "Xdiin2")
+  call writefile(["y", "y"], "Xdinew2")
+  call writefile(["1c1", "2c2"], "Xdiout2")
+  call term_sendkeys(buf, ":set diffexpr=DiffExprStub()\<CR>:")
+  call VerifyInternal(buf, "Test_diff_overlapped_3.18", "")
+  call term_sendkeys(buf, ":set diffexpr&\<CR>:")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d"], ["x", "b", "x", "d"], ["y", 
"y", "c", "d"])
+  call writefile(["a", "b", "c", "d"], "Xdiin1")
+  call writefile(["x", "b", "x", "d"], "Xdinew1")
+  call writefile(["1c1", "3c3"], "Xdiout1")
+  call writefile(["a", "b", "c", "d"], "Xdiin2")
+  call writefile(["y", "y", "c", "d"], "Xdinew2")
+  call writefile(["1c1", "2c2"], "Xdiout2")
+  call term_sendkeys(buf, ":set diffexpr=DiffExprStub()\<CR>:")
+  call VerifyInternal(buf, "Test_diff_overlapped_3.19", "")
+  call term_sendkeys(buf, ":set diffexpr&\<CR>:")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d"], ["x", "b", "x", "d"], ["y", 
"y", "y", "d"])
+  call writefile(["a", "b", "c", "d"], "Xdiin1")
+  call writefile(["x", "b", "x", "d"], "Xdinew1")
+  call writefile(["1c1", "3c3"], "Xdiout1")
+  call writefile(["a", "b", "c", "d"], "Xdiin2")
+  call writefile(["y", "y", "y", "d"], "Xdinew2")
+  call writefile(["1c1", "2,3c2,3"], "Xdiout2")
+  call term_sendkeys(buf, ":set diffexpr=DiffExprStub()\<CR>:")
+  call VerifyInternal(buf, "Test_diff_overlapped_3.20", "")
+  call term_sendkeys(buf, ":set diffexpr&\<CR>:")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d"], ["x", "b", "x", "d"], ["y", 
"y", "y", "y"])
+  call writefile(["a", "b", "c", "d"], "Xdiin1")
+  call writefile(["x", "b", "x", "d"], "Xdinew1")
+  call writefile(["1c1", "3c3"], "Xdiout1")
+  call writefile(["a", "b", "c", "d"], "Xdiin2")
+  call writefile(["y", "y", "y", "y"], "Xdinew2")
+  call writefile(["1c1", "2,4c2,4"], "Xdiout2")
+  call term_sendkeys(buf, ":set diffexpr=DiffExprStub()\<CR>:")
+  call VerifyInternal(buf, "Test_diff_overlapped_3.21", "")
+  call term_sendkeys(buf, ":set diffexpr&\<CR>:")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c"], ["a", "x", "c"], ["b", "c"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.22", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c"], ["a", "x", "c"], ["c"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.23", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c"], ["a", "x", "c"], [])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.24", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c"], ["a", "x", "c"], ["a", "c"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.25", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c"], ["a", "x", "c"], ["a"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.26", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c"], ["a", "x", "c"], ["b"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.27", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d", "e"], ["a", "x", "c", "x", 
"e"], ["d", "e"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.28", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d", "e"], ["a", "x", "c", "x", 
"e"], ["e"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.29", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d", "e"], ["a", "x", "c", "x", 
"e"], ["a", "d", "e"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.30", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d", "e"], ["a", "x", "c", "x", 
"e"], ["a", "e"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.31", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d", "e"], ["a", "x", "c", "x", 
"e"], ["a"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.32", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d", "e"], ["a", "x", "c", "x", 
"e"], ["a", "b", "d", "e"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.33", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d", "e"], ["a", "x", "c", "x", 
"e"], ["a", "b", "e"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.34", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c", "d", "e"], ["a", "x", "c", "x", 
"e"], ["a", "b"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.35", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c"], ["a", "x", "c"], ["a", "y", "b", 
"c"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.36", "")
+
+  call WriteDiffFiles3(buf, ["a", "b", "c"], ["a", "x", "c"], ["a", "b", "y", 
"c"])
+  call VerifyBoth(buf, "Test_diff_overlapped_3.37", "")
+
+  call StopVimInTerminal(buf)
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index f127fa12e..c6f313b55 100644
--- a/src/version.c
+++ b/src/version.c
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    743,
 /**/
     742,
 /**/

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/E1stpVy-00A1rN-Qc%40256bit.org.

Raspunde prin e-mail lui