diff options
-rw-r--r-- | src/diff.c | 4 | ||||
-rw-r--r-- | src/testdir/test_diffmode.vim | 12 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 16 insertions, 2 deletions
diff --git a/src/diff.c b/src/diff.c index eddf33165..91e5ae2f2 100644 --- a/src/diff.c +++ b/src/diff.c @@ -403,9 +403,9 @@ diff_mark_adjust_tp( // 2. 3. 4. 5.: inserted/deleted lines touching this diff. if (deleted > 0) { + off = 0; if (dp->df_lnum[idx] >= line1) { - off = dp->df_lnum[idx] - lnum_deleted; if (last <= line2) { // 4. delete all lines of diff @@ -426,6 +426,7 @@ diff_mark_adjust_tp( else { // 5. delete lines at or just before top of diff + off = dp->df_lnum[idx] - lnum_deleted; n = off; dp->df_count[idx] -= line2 - dp->df_lnum[idx] + 1; check_unchanged = TRUE; @@ -434,7 +435,6 @@ diff_mark_adjust_tp( } else { - off = 0; if (last < line2) { // 2. delete at end of diff diff --git a/src/testdir/test_diffmode.vim b/src/testdir/test_diffmode.vim index afa8f891b..4c7aff5cc 100644 --- a/src/testdir/test_diffmode.vim +++ b/src/testdir/test_diffmode.vim @@ -1615,5 +1615,17 @@ func Test_diff_only() %bwipe! endfunc +" This was causing invalid diff block values +" FIXME: somehow this causes a valgrind error when run directly but not when +" run as a test. +func Test_diff_manipulations() + set diff + split 0 + sil! norm R
doobdeuR
doobdeuR
doobdeu + + set nodiff + %bwipe! +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index c847d5905..d7f0a83f3 100644 --- a/src/version.c +++ b/src/version.c @@ -736,6 +736,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 5164, +/**/ 5163, /**/ 5162, |