From 83c5701fe6d182c2f458b95d09114d9c861f8893 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sat, 31 Aug 2019 14:06:45 +0200 Subject: vim-patch:8.1.1498: ":write" increments b:changedtick even though nothing changed Problem: ":write" increments b:changedtick even though nothing changed. (Daniel Hahler) Solution: Only increment b:changedtick if the modified flag is reset. https://github.com/vim/vim/commit/c024b4667875e5bc6fd0ed791530e33c3161bff7 --- src/nvim/change.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/nvim/change.c') diff --git a/src/nvim/change.c b/src/nvim/change.c index f8a4cf4282..3401f8a0a8 100644 --- a/src/nvim/change.c +++ b/src/nvim/change.c @@ -478,9 +478,11 @@ changed_lines( } } -/// Called when the changed flag must be reset for buffer "buf". -/// When "ff" is true also reset 'fileformat'. -void unchanged(buf_T *buf, int ff) +/// Called when the changed flag must be reset for buffer `buf`. +/// When `ff` is true also reset 'fileformat'. +/// When `always_inc_changedtick` is true b:changedtick is incremented even +/// when the changed flag was off. +void unchanged(buf_T *buf, int ff, bool always_inc_changedtick) { if (buf->b_changed || (ff && file_ff_differs(buf, false))) { buf->b_changed = false; @@ -491,8 +493,10 @@ void unchanged(buf_T *buf, int ff) check_status(buf); redraw_tabline = true; need_maketitle = true; // set window title later + buf_inc_changedtick(buf); + } else if (always_inc_changedtick) { + buf_inc_changedtick(buf); } - buf_inc_changedtick(buf); } /// Insert string "p" at the cursor position. Stops at a NUL byte. -- cgit