diff options
Diffstat (limited to 'src/nvim/buffer.c')
| -rw-r--r-- | src/nvim/buffer.c | 14 | 
1 files changed, 10 insertions, 4 deletions
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index 71e04ec0fb..3fadcc75bf 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -505,14 +505,20 @@ void close_buffer(win_T *win, buf_T *buf, int action, int abort_if_last)    int nwindows = buf->b_nwindows; -  /* decrease the link count from windows (unless not in any window) */ -  if (buf->b_nwindows > 0) -    --buf->b_nwindows; +  // decrease the link count from windows (unless not in any window) +  if (buf->b_nwindows > 0) { +    buf->b_nwindows--; +  } + +  if (diffopt_hiddenoff() && !unload_buf && buf->b_nwindows == 0) { +    diff_buf_delete(buf);   // Clear 'diff' for hidden buffer. +  }    /* Return when a window is displaying the buffer or when it's not     * unloaded. */ -  if (buf->b_nwindows > 0 || !unload_buf) +  if (buf->b_nwindows > 0 || !unload_buf) {      return; +  }    if (buf->terminal) {      terminal_close(buf->terminal, NULL);  | 
