diff options
author | Thiago de Arruda <tpadilha84@gmail.com> | 2014-05-09 18:22:37 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2014-05-13 09:33:41 -0300 |
commit | 73dbb97f8e51c77bb553a8af645b728543462d26 (patch) | |
tree | 2c989a2c8f3ec4ce74e24f4faef7748f5c8ae2a9 /src/api/helpers.c | |
parent | 9dd1d2cd003d2567fcd47c8cb54603cc348dec01 (diff) | |
download | rneovim-73dbb97f8e51c77bb553a8af645b728543462d26.tar.gz rneovim-73dbb97f8e51c77bb553a8af645b728543462d26.tar.bz2 rneovim-73dbb97f8e51c77bb553a8af645b728543462d26.zip |
API: Implement window/tabpage switching functions
Also moved `find_buffer` to 'api/helpers.c' and removed unnecessary declaration
in 'window.h'
Diffstat (limited to 'src/api/helpers.c')
-rw-r--r-- | src/api/helpers.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/api/helpers.c b/src/api/helpers.c index 40888f351d..9b7ff5fc7c 100644 --- a/src/api/helpers.c +++ b/src/api/helpers.c @@ -5,6 +5,7 @@ #include "api/helpers.h" #include "api/defs.h" #include "../vim.h" +#include "../buffer.h" #include "../window.h" #include "memory.h" #include "eval.h" @@ -266,6 +267,32 @@ Object vim_to_object(typval_T *obj) return rv; } +buf_T *find_buffer(Buffer buffer, Error *err) +{ + buf_T *buf = buflist_findnr(buffer); + + if (buf == NULL) { + set_api_error("Invalid buffer id", err); + } + + return buf; +} + +win_T * find_window(Window window, Error *err) +{ + tabpage_T *tp; + win_T *wp; + + FOR_ALL_TAB_WINDOWS(tp, wp) { + if (!--window) { + return wp; + } + } + + set_api_error("Invalid window id", err); + return NULL; +} + static bool object_to_vim(Object obj, typval_T *tv, Error *err) { tv->v_type = VAR_UNKNOWN; |