aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2014-06-18 12:16:53 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2014-06-18 12:16:53 -0300
commit090870ca047dee8d136f863ba742922fc265d6f4 (patch)
tree28b5852d5c6ed9ebc415209d9c42bafa651b53b3 /src/nvim/api
parentd199d18159c624844c9c8052d1a98b91084fb803 (diff)
parenta7d027c8ab289d76eda91b6afe3be63a165d4adf (diff)
downloadrneovim-090870ca047dee8d136f863ba742922fc265d6f4.tar.gz
rneovim-090870ca047dee8d136f863ba742922fc265d6f4.tar.bz2
rneovim-090870ca047dee8d136f863ba742922fc265d6f4.zip
Merge PR #853
Diffstat (limited to 'src/nvim/api')
-rw-r--r--src/nvim/api/buffer.c24
-rw-r--r--src/nvim/api/private/defs.h4
-rw-r--r--src/nvim/api/private/helpers.c21
-rw-r--r--src/nvim/api/private/helpers.h43
-rw-r--r--src/nvim/api/tabpage.c10
-rw-r--r--src/nvim/api/vim.c6
-rw-r--r--src/nvim/api/window.c28
7 files changed, 82 insertions, 54 deletions
diff --git a/src/nvim/api/buffer.c b/src/nvim/api/buffer.c
index adcdc6da94..034ced184a 100644
--- a/src/nvim/api/buffer.c
+++ b/src/nvim/api/buffer.c
@@ -31,7 +31,7 @@
/// @return The line count
Integer buffer_get_length(Buffer buffer, Error *err)
{
- buf_T *buf = find_buffer(buffer, err);
+ buf_T *buf = find_buffer_by_handle(buffer, err);
if (!buf) {
return 0;
@@ -100,7 +100,7 @@ StringArray buffer_get_slice(Buffer buffer,
Error *err)
{
StringArray rv = ARRAY_DICT_INIT;
- buf_T *buf = find_buffer(buffer, err);
+ buf_T *buf = find_buffer_by_handle(buffer, err);
if (!buf) {
return rv;
@@ -160,7 +160,7 @@ void buffer_set_slice(Buffer buffer,
StringArray replacement,
Error *err)
{
- buf_T *buf = find_buffer(buffer, err);
+ buf_T *buf = find_buffer_by_handle(buffer, err);
if (!buf) {
return;
@@ -283,7 +283,7 @@ end:
/// @return The variable value
Object buffer_get_var(Buffer buffer, String name, Error *err)
{
- buf_T *buf = find_buffer(buffer, err);
+ buf_T *buf = find_buffer_by_handle(buffer, err);
if (!buf) {
return (Object) OBJECT_INIT;
@@ -301,7 +301,7 @@ Object buffer_get_var(Buffer buffer, String name, Error *err)
/// @return The old value
Object buffer_set_var(Buffer buffer, String name, Object value, Error *err)
{
- buf_T *buf = find_buffer(buffer, err);
+ buf_T *buf = find_buffer_by_handle(buffer, err);
if (!buf) {
return (Object) OBJECT_INIT;
@@ -318,7 +318,7 @@ Object buffer_set_var(Buffer buffer, String name, Object value, Error *err)
/// @return The option value
Object buffer_get_option(Buffer buffer, String name, Error *err)
{
- buf_T *buf = find_buffer(buffer, err);
+ buf_T *buf = find_buffer_by_handle(buffer, err);
if (!buf) {
return (Object) OBJECT_INIT;
@@ -336,7 +336,7 @@ Object buffer_get_option(Buffer buffer, String name, Error *err)
/// @param[out] err Details of an error that may have occurred
void buffer_set_option(Buffer buffer, String name, Object value, Error *err)
{
- buf_T *buf = find_buffer(buffer, err);
+ buf_T *buf = find_buffer_by_handle(buffer, err);
if (!buf) {
return;
@@ -353,7 +353,7 @@ void buffer_set_option(Buffer buffer, String name, Object value, Error *err)
Integer buffer_get_number(Buffer buffer, Error *err)
{
Integer rv = 0;
- buf_T *buf = find_buffer(buffer, err);
+ buf_T *buf = find_buffer_by_handle(buffer, err);
if (!buf) {
return rv;
@@ -370,7 +370,7 @@ Integer buffer_get_number(Buffer buffer, Error *err)
String buffer_get_name(Buffer buffer, Error *err)
{
String rv = STRING_INIT;
- buf_T *buf = find_buffer(buffer, err);
+ buf_T *buf = find_buffer_by_handle(buffer, err);
if (!buf || buf->b_ffname == NULL) {
return rv;
@@ -386,7 +386,7 @@ String buffer_get_name(Buffer buffer, Error *err)
/// @param[out] err Details of an error that may have occurred
void buffer_set_name(Buffer buffer, String name, Error *err)
{
- buf_T *buf = find_buffer(buffer, err);
+ buf_T *buf = find_buffer_by_handle(buffer, err);
if (!buf) {
return;
@@ -416,7 +416,7 @@ void buffer_set_name(Buffer buffer, String name, Error *err)
Boolean buffer_is_valid(Buffer buffer)
{
Error stub = {.set = false};
- return find_buffer(buffer, &stub) != NULL;
+ return find_buffer_by_handle(buffer, &stub) != NULL;
}
/// Inserts a sequence of lines to a buffer at a certain index
@@ -440,7 +440,7 @@ void buffer_insert(Buffer buffer, Integer lnum, StringArray lines, Error *err)
Position buffer_get_mark(Buffer buffer, String name, Error *err)
{
Position rv = POSITION_INIT;
- buf_T *buf = find_buffer(buffer, err);
+ buf_T *buf = find_buffer_by_handle(buffer, err);
if (!buf) {
return rv;
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
diff --git a/src/nvim/api/tabpage.c b/src/nvim/api/tabpage.c
index 8d92b01cf9..535722c087 100644
--- a/src/nvim/api/tabpage.c
+++ b/src/nvim/api/tabpage.c
@@ -16,7 +16,7 @@
WindowArray tabpage_get_windows(Tabpage tabpage, Error *err)
{
WindowArray rv = ARRAY_DICT_INIT;
- tabpage_T *tab = find_tab(tabpage, err);
+ tabpage_T *tab = find_tab_by_handle(tabpage, err);
if (!tab) {
return rv;
@@ -53,7 +53,7 @@ WindowArray tabpage_get_windows(Tabpage tabpage, Error *err)
/// @return The variable value
Object tabpage_get_var(Tabpage tabpage, String name, Error *err)
{
- tabpage_T *tab = find_tab(tabpage, err);
+ tabpage_T *tab = find_tab_by_handle(tabpage, err);
if (!tab) {
return (Object) OBJECT_INIT;
@@ -71,7 +71,7 @@ Object tabpage_get_var(Tabpage tabpage, String name, Error *err)
/// @return The tab page handle
Object tabpage_set_var(Tabpage tabpage, String name, Object value, Error *err)
{
- tabpage_T *tab = find_tab(tabpage, err);
+ tabpage_T *tab = find_tab_by_handle(tabpage, err);
if (!tab) {
return (Object) OBJECT_INIT;
@@ -88,7 +88,7 @@ Object tabpage_set_var(Tabpage tabpage, String name, Object value, Error *err)
Window tabpage_get_window(Tabpage tabpage, Error *err)
{
Window rv = 0;
- tabpage_T *tab = find_tab(tabpage, err);
+ tabpage_T *tab = find_tab_by_handle(tabpage, err);
if (!tab) {
return rv;
@@ -117,6 +117,6 @@ Window tabpage_get_window(Tabpage tabpage, Error *err)
Boolean tabpage_is_valid(Tabpage tabpage)
{
Error stub = {.set = false};
- return find_tab(tabpage, &stub) != NULL;
+ return find_tab_by_handle(tabpage, &stub) != NULL;
}
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c
index b99311a61a..e7261e1096 100644
--- a/src/nvim/api/vim.c
+++ b/src/nvim/api/vim.c
@@ -291,7 +291,7 @@ Buffer vim_get_current_buffer(void)
/// @param[out] err Details of an error that may have occurred
void vim_set_current_buffer(Buffer buffer, Error *err)
{
- buf_T *buf = find_buffer(buffer, err);
+ buf_T *buf = find_buffer_by_handle(buffer, err);
if (!buf) {
return;
@@ -348,7 +348,7 @@ Window vim_get_current_window(void)
/// @param handle The window handle
void vim_set_current_window(Window window, Error *err)
{
- win_T *win = find_window(window, err);
+ win_T *win = find_window_by_handle(window, err);
if (!win) {
return;
@@ -407,7 +407,7 @@ Tabpage vim_get_current_tabpage(void)
/// @param[out] err Details of an error that may have occurred
void vim_set_current_tabpage(Tabpage tabpage, Error *err)
{
- tabpage_T *tp = find_tab(tabpage, err);
+ tabpage_T *tp = find_tab_by_handle(tabpage, err);
if (!tp) {
return;
diff --git a/src/nvim/api/window.c b/src/nvim/api/window.c
index 2b81afdb0c..548d8171a5 100644
--- a/src/nvim/api/window.c
+++ b/src/nvim/api/window.c
@@ -19,7 +19,7 @@
/// @return The buffer handle
Buffer window_get_buffer(Window window, Error *err)
{
- win_T *win = find_window(window, err);
+ win_T *win = find_window_by_handle(window, err);
if (!win) {
return 0;
@@ -36,7 +36,7 @@ Buffer window_get_buffer(Window window, Error *err)
Position window_get_cursor(Window window, Error *err)
{
Position rv = {.row = 0, .col = 0};
- win_T *win = find_window(window, err);
+ win_T *win = find_window_by_handle(window, err);
if (win) {
rv.row = win->w_cursor.lnum;
@@ -53,7 +53,7 @@ Position window_get_cursor(Window window, Error *err)
/// @param[out] err Details of an error that may have occurred
void window_set_cursor(Window window, Position pos, Error *err)
{
- win_T *win = find_window(window, err);
+ win_T *win = find_window_by_handle(window, err);
if (!win) {
return;
@@ -89,7 +89,7 @@ void window_set_cursor(Window window, Position pos, Error *err)
/// @return the height in rows
Integer window_get_height(Window window, Error *err)
{
- win_T *win = find_window(window, err);
+ win_T *win = find_window_by_handle(window, err);
if (!win) {
return 0;
@@ -106,7 +106,7 @@ Integer window_get_height(Window window, Error *err)
/// @param[out] err Details of an error that may have occurred
void window_set_height(Window window, Integer height, Error *err)
{
- win_T *win = find_window(window, err);
+ win_T *win = find_window_by_handle(window, err);
if (!win) {
return;
@@ -132,7 +132,7 @@ void window_set_height(Window window, Integer height, Error *err)
/// @return the width in columns
Integer window_get_width(Window window, Error *err)
{
- win_T *win = find_window(window, err);
+ win_T *win = find_window_by_handle(window, err);
if (!win) {
return 0;
@@ -149,7 +149,7 @@ Integer window_get_width(Window window, Error *err)
/// @param[out] err Details of an error that may have occurred
void window_set_width(Window window, Integer width, Error *err)
{
- win_T *win = find_window(window, err);
+ win_T *win = find_window_by_handle(window, err);
if (!win) {
return;
@@ -176,7 +176,7 @@ void window_set_width(Window window, Integer width, Error *err)
/// @return The variable value
Object window_get_var(Window window, String name, Error *err)
{
- win_T *win = find_window(window, err);
+ win_T *win = find_window_by_handle(window, err);
if (!win) {
return (Object) OBJECT_INIT;
@@ -194,7 +194,7 @@ Object window_get_var(Window window, String name, Error *err)
/// @return The old value
Object window_set_var(Window window, String name, Object value, Error *err)
{
- win_T *win = find_window(window, err);
+ win_T *win = find_window_by_handle(window, err);
if (!win) {
return (Object) OBJECT_INIT;
@@ -211,7 +211,7 @@ Object window_set_var(Window window, String name, Object value, Error *err)
/// @return The option value
Object window_get_option(Window window, String name, Error *err)
{
- win_T *win = find_window(window, err);
+ win_T *win = find_window_by_handle(window, err);
if (!win) {
return (Object) OBJECT_INIT;
@@ -229,7 +229,7 @@ Object window_get_option(Window window, String name, Error *err)
/// @param[out] err Details of an error that may have occurred
void window_set_option(Window window, String name, Object value, Error *err)
{
- win_T *win = find_window(window, err);
+ win_T *win = find_window_by_handle(window, err);
if (!win) {
return;
@@ -246,7 +246,7 @@ void window_set_option(Window window, String name, Object value, Error *err)
Position window_get_position(Window window, Error *err)
{
Position rv;
- win_T *win = find_window(window, err);
+ win_T *win = find_window_by_handle(window, err);
if (win) {
rv.col = win->w_wincol;
@@ -264,7 +264,7 @@ Position window_get_position(Window window, Error *err)
Tabpage window_get_tabpage(Window window, Error *err)
{
Tabpage rv = 0;
- win_T *win = find_window(window, err);
+ win_T *win = find_window_by_handle(window, err);
if (win) {
rv = win_find_tabpage(win)->handle;
@@ -280,6 +280,6 @@ Tabpage window_get_tabpage(Window window, Error *err)
Boolean window_is_valid(Window window)
{
Error stub = {.set = false};
- return find_window(window, &stub) != NULL;
+ return find_window_by_handle(window, &stub) != NULL;
}