comparison 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
comparison
equal deleted inserted replaced
7468:58a20453ab00 7469:15eefe1b0dad
1634 } 1634 }
1635 1635
1636 /* 1636 /*
1637 * Return TRUE if any buffer was changed and cannot be abandoned. 1637 * Return TRUE if any buffer was changed and cannot be abandoned.
1638 * That changed buffer becomes the current buffer. 1638 * That changed buffer becomes the current buffer.
1639 * When "unload" is true the current buffer is unloaded instead of making it
1640 * hidden. This is used for ":q!".
1639 */ 1641 */
1640 int 1642 int
1641 check_changed_any(hidden) 1643 check_changed_any(hidden, unload)
1642 int hidden; /* Only check hidden buffers */ 1644 int hidden; /* Only check hidden buffers */
1645 int unload;
1643 { 1646 {
1644 int ret = FALSE; 1647 int ret = FALSE;
1645 buf_T *buf; 1648 buf_T *buf;
1646 int save; 1649 int save;
1647 int i; 1650 int i;
1748 buf_found: 1751 buf_found:
1749 #endif 1752 #endif
1750 1753
1751 /* Open the changed buffer in the current window. */ 1754 /* Open the changed buffer in the current window. */
1752 if (buf != curbuf) 1755 if (buf != curbuf)
1753 set_curbuf(buf, DOBUF_GOTO); 1756 set_curbuf(buf, unload ? DOBUF_UNLOAD : DOBUF_GOTO);
1754 1757
1755 theend: 1758 theend:
1756 vim_free(bufnrs); 1759 vim_free(bufnrs);
1757 return ret; 1760 return ret;
1758 } 1761 }