diff options
author | Eliseo Martínez <eliseomarmol@gmail.com> | 2014-05-12 02:25:17 +0200 |
---|---|---|
committer | Eliseo Martínez <eliseomarmol@gmail.com> | 2014-05-15 20:46:01 +0200 |
commit | da51dc9cf202772f60bd2da975dbef257bd9237c (patch) | |
tree | 5c16b93238a153f55634e9323077f30c8133970c /src/nvim/api/tabpage.c | |
parent | ffe61e5ba1721340ca51d56bae3ddaca415fb5bc (diff) | |
download | rneovim-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.c | 88 |
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; +} + |