aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2014-05-11 10:31:31 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2014-05-13 14:11:32 -0300
commit6226ac34fde08fa5ad44a77324799a0018dd05fe (patch)
treeafa26e3364e2f6a4d1fc313ece0af459dc5a281c
parent17053bbc3967d6cd8152f26d909473d4e0629f70 (diff)
downloadrneovim-6226ac34fde08fa5ad44a77324799a0018dd05fe.tar.gz
rneovim-6226ac34fde08fa5ad44a77324799a0018dd05fe.tar.bz2
rneovim-6226ac34fde08fa5ad44a77324799a0018dd05fe.zip
API: Implement window_{get,set}_option
-rw-r--r--src/api/window.c21
-rw-r--r--src/api/window.h7
2 files changed, 21 insertions, 7 deletions
diff --git a/src/api/window.c b/src/api/window.c
index 661b85f512..45335ba3ed 100644
--- a/src/api/window.c
+++ b/src/api/window.c
@@ -134,14 +134,27 @@ Object window_set_var(Window window, String name, Object value, Error *err)
return dict_set_value(win->w_vars, name, value, err);
}
-String window_get_option(Window window, String name, Error *err)
+Object window_get_option(Window window, String name, Error *err)
{
- abort();
+ Object rv;
+ win_T *win = find_window(window, err);
+
+ if (!win) {
+ return rv;
+ }
+
+ return get_option_from(win, SREQ_WIN, name, err);
}
-void window_set_option(Window window, String name, String value, Error *err)
+void window_set_option(Window window, String name, Object value, Error *err)
{
- abort();
+ win_T *win = find_window(window, err);
+
+ if (!win) {
+ return;
+ }
+
+ set_option_to(win, SREQ_WIN, name, value, err);
}
Position window_get_pos(Window window, Error *err)
diff --git a/src/api/window.h b/src/api/window.h
index ee9a6b0834..be8dab66b8 100644
--- a/src/api/window.h
+++ b/src/api/window.h
@@ -80,15 +80,16 @@ Object window_set_var(Window window, String name, Object value, Error *err);
/// @param name The option name
/// @param[out] err Details of an error that may have occurred
/// @return The option value
-String window_get_option(Window window, String name, Error *err);
+Object window_get_option(Window window, String name, Error *err);
-/// Sets a window option value
+/// Sets a window option value. Passing 'nil' as value deletes the option(only
+/// works if there's a global fallback)
///
/// @param window The window handle
/// @param name The option name
/// @param value The option value
/// @param[out] err Details of an error that may have occurred
-void window_set_option(Window window, String name, String value, Error *err);
+void window_set_option(Window window, String name, Object value, Error *err);
/// Gets the window position in display cells. First position is zero.
///