aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/buffer.c
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2019-04-13 19:46:21 -0400
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2019-04-14 19:09:19 -0400
commit6de1ed1ff11a59b063ae8d199aab17977d7b445f (patch)
treef5157f3eb49856987dd9b84c89f322a40b9e57d2 /src/nvim/buffer.c
parent8f2175e7d052e219a68e75640cf6547251d335c2 (diff)
downloadrneovim-6de1ed1ff11a59b063ae8d199aab17977d7b445f.tar.gz
rneovim-6de1ed1ff11a59b063ae8d199aab17977d7b445f.tar.bz2
rneovim-6de1ed1ff11a59b063ae8d199aab17977d7b445f.zip
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
Diffstat (limited to 'src/nvim/buffer.c')
-rw-r--r--src/nvim/buffer.c49
1 files changed, 49 insertions, 0 deletions
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.