From 6de1ed1ff11a59b063ae8d199aab17977d7b445f Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sat, 13 Apr 2019 19:46:21 -0400 Subject: vim-patch:8.0.0776: function prototypes missing without the quickfix feature Problem: Function prototypes missing without the quickfix feature. (Tony Mechelynck) Solution: Move non-quickfix functions to buffer.c. https://github.com/vim/vim/commit/f0a521f4f76904edb74e182c12732189b347ff68 --- src/nvim/buffer.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'src/nvim/buffer.c') diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index b9c4c4d544..d628c517bb 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -5142,6 +5142,55 @@ bool bt_help(const buf_T *const buf) return buf != NULL && buf->b_help; } +// Return true if "buf" is the quickfix buffer. +bool bt_quickfix(const buf_T *const buf) +{ + return buf != NULL && buf->b_p_bt[0] == 'q'; +} + +// Return true if "buf" is a terminal buffer. +bool bt_terminal(const buf_T *const buf) +{ + return buf != NULL && buf->b_p_bt[0] == 't'; +} + +// Return true if "buf" is a "nofile", "acwrite" or "terminal" buffer. +// This means the buffer name is not a file name. +bool bt_nofile(const buf_T *const buf) +{ + return buf != NULL && ((buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f') + || buf->b_p_bt[0] == 'a' || buf->terminal); +} + +// Return true if "buf" is a "nowrite", "nofile" or "terminal" buffer. +bool bt_dontwrite(const buf_T *const buf) +{ + return buf != NULL && (buf->b_p_bt[0] == 'n' || buf->terminal); +} + +bool bt_dontwrite_msg(const buf_T *const buf) +{ + if (bt_dontwrite(buf)) { + EMSG(_("E382: Cannot write, 'buftype' option is set")); + return true; + } + return false; +} + +// Return true if the buffer should be hidden, according to 'hidden', ":hide" +// and 'bufhidden'. +bool buf_hide(const buf_T *const buf) +{ + // 'bufhidden' overrules 'hidden' and ":hide", check it first + switch (buf->b_p_bh[0]) { + case 'u': // "unload" + case 'w': // "wipe" + case 'd': return false; // "delete" + case 'h': return true; // "hide" + } + return p_hid || cmdmod.hide; +} + /* * Return special buffer name. * Returns NULL when the buffer has a normal file name. -- cgit