Mercurial > vim
diff src/ex_cmds2.c @ 7469:15eefe1b0dad v7.4.1037
commit https://github.com/vim/vim/commit/027387f70c671f62e3e08e0bdd09ec05b0232735
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jan 2 22:25:52 2016 +0100
patch 7.4.1037
Problem: Using "q!" when there is a modified hidden buffer does not unload
the current buffer, resulting in the need to abandon it again.
Solution: When using "q!" unload the current buffer when needed. (Yasuhiro
Matsumoto, Hirohito Higashi)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 02 Jan 2016 22:30:04 +0100 |
parents | 84efaf06f195 |
children | 8fc60af6dbf5 |
line wrap: on
line diff
--- a/src/ex_cmds2.c +++ b/src/ex_cmds2.c @@ -1636,10 +1636,13 @@ add_bufnum(bufnrs, bufnump, nr) /* * Return TRUE if any buffer was changed and cannot be abandoned. * That changed buffer becomes the current buffer. + * When "unload" is true the current buffer is unloaded instead of making it + * hidden. This is used for ":q!". */ int -check_changed_any(hidden) +check_changed_any(hidden, unload) int hidden; /* Only check hidden buffers */ + int unload; { int ret = FALSE; buf_T *buf; @@ -1750,7 +1753,7 @@ buf_found: /* Open the changed buffer in the current window. */ if (buf != curbuf) - set_curbuf(buf, DOBUF_GOTO); + set_curbuf(buf, unload ? DOBUF_UNLOAD : DOBUF_GOTO); theend: vim_free(bufnrs);