summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-09-16 14:10:31 +0200
committerBram Moolenaar <Bram@vim.org>2018-09-16 14:10:31 +0200
commite3521d9cbb786806eaff106707851d37d2c0ecef (patch)
tree37457955339b93a9bd1410491b2a1f1e9bea2b72 /src/main.c
parent785fc6567f572b8caefbc89ec29bbd8b801464ae (diff)
downloadvim-git-e3521d9cbb786806eaff106707851d37d2c0ecef.tar.gz
patch 8.1.0394: diffs are not always updated correctlyv8.1.0394
Problem: Diffs are not always updated correctly. Solution: When using internal diff update for any changes properly.
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
index bf9b842f5..8ee165003 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1200,6 +1200,15 @@ main_loop(
}
#if defined(FEAT_DIFF)
+ // Updating diffs from changed() does not always work properly,
+ // esp. updating folds. Do an update just before redrawing if
+ // needed.
+ if (curtab->tp_diff_update || curtab->tp_diff_invalid)
+ {
+ ex_diffupdate(NULL);
+ curtab->tp_diff_update = FALSE;
+ }
+
/* Scroll-binding for diff mode may have been postponed until
* here. Avoids doing it for every change. */
if (diff_need_scrollbind)