aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/tabpage.c
diff options
context:
space:
mode:
authorEliseo Martínez <eliseomarmol@gmail.com>2014-05-12 02:25:17 +0200
committerEliseo Martínez <eliseomarmol@gmail.com>2014-05-15 20:46:01 +0200
commitda51dc9cf202772f60bd2da975dbef257bd9237c (patch)
tree5c16b93238a153f55634e9323077f30c8133970c /src/nvim/api/tabpage.c
parentffe61e5ba1721340ca51d56bae3ddaca415fb5bc (diff)
downloadrneovim-da51dc9cf202772f60bd2da975dbef257bd9237c.tar.gz
rneovim-da51dc9cf202772f60bd2da975dbef257bd9237c.tar.bz2
rneovim-da51dc9cf202772f60bd2da975dbef257bd9237c.zip
Introduce nvim namespace: Move files.
Move files from src/ to src/nvim/. - src/nvim/ becomes the new root dir for nvim executable sources. - src/libnvim/ is planned to become root dir of the neovim library.
Diffstat (limited to 'src/nvim/api/tabpage.c')
-rw-r--r--src/nvim/api/tabpage.c88
1 files changed, 88 insertions, 0 deletions
diff --git a/src/nvim/api/tabpage.c b/src/nvim/api/tabpage.c
new file mode 100644
index 0000000000..27f0aba99c
--- /dev/null
+++ b/src/nvim/api/tabpage.c
@@ -0,0 +1,88 @@
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+#include "api/tabpage.h"
+#include "api/vim.h"
+#include "api/defs.h"
+#include "api/helpers.h"
+
+int64_t tabpage_get_window_count(Tabpage tabpage, Error *err)
+{
+ uint64_t rv = 0;
+ tabpage_T *tab = find_tab(tabpage, err);
+
+ if (!tab) {
+ return rv;
+ }
+
+ tabpage_T *tp;
+ win_T *wp;
+
+ FOR_ALL_TAB_WINDOWS(tp, wp) {
+ if (tp != tab) {
+ break;
+ }
+ rv++;
+ }
+
+ return rv;
+}
+
+Object tabpage_get_var(Tabpage tabpage, String name, Error *err)
+{
+ Object rv;
+ tabpage_T *tab = find_tab(tabpage, err);
+
+ if (!tab) {
+ return rv;
+ }
+
+ return dict_get_value(tab->tp_vars, name, err);
+}
+
+Object tabpage_set_var(Tabpage tabpage, String name, Object value, Error *err)
+{
+ Object rv;
+ tabpage_T *tab = find_tab(tabpage, err);
+
+ if (!tab) {
+ return rv;
+ }
+
+ return dict_set_value(tab->tp_vars, name, value, err);
+}
+
+Window tabpage_get_window(Tabpage tabpage, Error *err)
+{
+ Window rv = 0;
+ tabpage_T *tab = find_tab(tabpage, err);
+
+ if (!tab) {
+ return rv;
+ }
+
+ if (tab == curtab) {
+ return vim_get_current_window();
+ } else {
+ tabpage_T *tp;
+ win_T *wp;
+ rv = 1;
+
+ FOR_ALL_TAB_WINDOWS(tp, wp) {
+ if (tp == tab && wp == tab->tp_curwin) {
+ return rv;
+ }
+ rv++;
+ }
+ // There should always be a current window for a tabpage
+ abort();
+ }
+}
+
+bool tabpage_is_valid(Tabpage tabpage)
+{
+ Error stub = {.set = false};
+ return find_tab(tabpage, &stub) != NULL;
+}
+