diff options
author | Thiago de Arruda <tpadilha84@gmail.com> | 2014-05-09 14:45:18 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2014-05-13 09:33:41 -0300 |
commit | 9dd1d2cd003d2567fcd47c8cb54603cc348dec01 (patch) | |
tree | f9949c67bb113ed15eb426bc60dc10406d097102 /src/api/vim.c | |
parent | c001cfdba064a87c28fe010dbc745eddcf6dbf33 (diff) | |
download | rneovim-9dd1d2cd003d2567fcd47c8cb54603cc348dec01.tar.gz rneovim-9dd1d2cd003d2567fcd47c8cb54603cc348dec01.tar.bz2 rneovim-9dd1d2cd003d2567fcd47c8cb54603cc348dec01.zip |
API: Implement buffer switching functions
Diffstat (limited to 'src/api/vim.c')
-rw-r--r-- | src/api/vim.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/api/vim.c b/src/api/vim.c index c23ac8affd..6b04c4b7a5 100644 --- a/src/api/vim.c +++ b/src/api/vim.c @@ -8,6 +8,7 @@ #include "api/defs.h" #include "api/buffer.h" #include "../vim.h" +#include "../buffer.h" #include "types.h" #include "ascii.h" #include "ex_docmd.h" @@ -184,19 +185,26 @@ int64_t vim_get_buffer_count(void) return n; } -Buffer vim_get_buffer(int64_t num, Error *err) -{ - abort(); -} - Buffer vim_get_current_buffer(void) { - abort(); + return curbuf->b_fnum; } -void vim_set_current_buffer(Buffer buffer) +void vim_set_current_buffer(Buffer buffer, Error *err) { - abort(); + try_start(); + if (do_buffer(DOBUF_GOTO, DOBUF_FIRST, FORWARD, buffer, 0) == FAIL) { + if (try_end(err)) { + return; + } + + char msg[256]; + snprintf(msg, sizeof(msg), "failed to switch to buffer %d", (int)buffer); + set_api_error(msg, err); + return; + } + + try_end(err); } int64_t vim_get_window_count(void) |