diff options
author | Thiago de Arruda <tpadilha84@gmail.com> | 2014-06-18 12:16:53 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2014-06-18 12:16:53 -0300 |
commit | 090870ca047dee8d136f863ba742922fc265d6f4 (patch) | |
tree | 28b5852d5c6ed9ebc415209d9c42bafa651b53b3 /src/nvim/api/private | |
parent | d199d18159c624844c9c8052d1a98b91084fb803 (diff) | |
parent | a7d027c8ab289d76eda91b6afe3be63a165d4adf (diff) | |
download | rneovim-090870ca047dee8d136f863ba742922fc265d6f4.tar.gz rneovim-090870ca047dee8d136f863ba742922fc265d6f4.tar.bz2 rneovim-090870ca047dee8d136f863ba742922fc265d6f4.zip |
Merge PR #853
Diffstat (limited to 'src/nvim/api/private')
-rw-r--r-- | src/nvim/api/private/defs.h | 4 | ||||
-rw-r--r-- | src/nvim/api/private/helpers.c | 21 | ||||
-rw-r--r-- | src/nvim/api/private/helpers.h | 43 |
3 files changed, 48 insertions, 20 deletions
diff --git a/src/nvim/api/private/defs.h b/src/nvim/api/private/defs.h index ab806941f4..ee0fc02c4d 100644 --- a/src/nvim/api/private/defs.h +++ b/src/nvim/api/private/defs.h @@ -49,14 +49,14 @@ typedef struct { typedef struct { Object *items; - size_t size; + size_t size, capacity; } Array; typedef struct key_value_pair KeyValuePair; typedef struct { KeyValuePair *items; - size_t size; + size_t size, capacity; } Dictionary; typedef enum { diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c index 264ac7a507..30301e9368 100644 --- a/src/nvim/api/private/helpers.c +++ b/src/nvim/api/private/helpers.c @@ -288,12 +288,7 @@ Object vim_to_object(typval_T *obj) return rv; } -/// Finds the pointer for a window number -/// -/// @param window the window number -/// @param[out] err Details of an error that may have occurred -/// @return the window pointer -buf_T *find_buffer(Buffer buffer, Error *err) +buf_T *find_buffer_by_handle(Buffer buffer, Error *err) { buf_T *rv = handle_get_buffer(buffer); @@ -304,12 +299,7 @@ buf_T *find_buffer(Buffer buffer, Error *err) return rv; } -/// Finds the pointer for a window number -/// -/// @param window the window number -/// @param[out] err Details of an error that may have occurred -/// @return the window pointer -win_T * find_window(Window window, Error *err) +win_T * find_window_by_handle(Window window, Error *err) { win_T *rv = handle_get_window(window); @@ -320,12 +310,7 @@ win_T * find_window(Window window, Error *err) return rv; } -/// Finds the pointer for a tabpage number -/// -/// @param tabpage the tabpage number -/// @param[out] err Details of an error that may have occurred -/// @return the tabpage pointer -tabpage_T * find_tab(Tabpage tabpage, Error *err) +tabpage_T * find_tab_by_handle(Tabpage tabpage, Error *err) { tabpage_T *rv = handle_get_tabpage(tabpage); diff --git a/src/nvim/api/private/helpers.h b/src/nvim/api/private/helpers.h index 68ab4ff614..e1e1a35490 100644 --- a/src/nvim/api/private/helpers.h +++ b/src/nvim/api/private/helpers.h @@ -6,6 +6,7 @@ #include "nvim/api/private/defs.h" #include "nvim/vim.h" #include "nvim/memory.h" +#include "nvim/lib/kvec.h" #define set_api_error(message, err) \ do { \ @@ -13,6 +14,48 @@ err->set = true; \ } while (0) +#define BOOL_OBJ(b) ((Object) { \ + .type = kObjectTypeBoolean, \ + .data.boolean = b \ + }) + +#define INTEGER_OBJ(i) ((Object) { \ + .type = kObjectTypeInteger, \ + .data.integer = i \ + }) + +#define STRING_OBJ(s) ((Object) { \ + .type = kObjectTypeString, \ + .data.string = cstr_to_string(s) \ + }) + +#define STRINGL_OBJ(d, s) ((Object) { \ + .type = kObjectTypeString, \ + .data.string = (String) { \ + .size = s, \ + .data = xmemdup(d, s) \ + }}) + +#define ARRAY_OBJ(a) ((Object) { \ + .type = kObjectTypeArray, \ + .data.array = a \ + }) + +#define DICTIONARY_OBJ(d) ((Object) { \ + .type = kObjectTypeDictionary, \ + .data.dictionary = d \ + }) + +#define NIL ((Object) {.type = kObjectTypeNil}) + +#define PUT(dict, k, v) \ + kv_push(KeyValuePair, \ + dict, \ + ((KeyValuePair) {.key = cstr_to_string(k), .value = v})) + +#define ADD(array, item) \ + kv_push(Object, array, item) + #ifdef INCLUDE_GENERATED_DECLARATIONS # include "api/private/helpers.h.generated.h" #endif |