aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/api/buffer.c20
-rw-r--r--src/api/buffer.h3
2 files changed, 19 insertions, 4 deletions
diff --git a/src/api/buffer.c b/src/api/buffer.c
index bdd27fe347..9d64429de6 100644
--- a/src/api/buffer.c
+++ b/src/api/buffer.c
@@ -222,12 +222,26 @@ cleanup:
Object buffer_get_var(Buffer buffer, String name, Error *err)
{
- abort();
+ Object rv;
+ buf_T *buf = find_buffer(buffer, err);
+
+ if (!buf) {
+ return rv;
+ }
+
+ return dict_get_value(buf->b_vars, name, false, err);
}
-void buffer_set_var(Buffer buffer, String name, Object value, Error *err)
+Object buffer_set_var(Buffer buffer, String name, Object value, Error *err)
{
- abort();
+ Object rv;
+ buf_T *buf = find_buffer(buffer, err);
+
+ if (!buf) {
+ return rv;
+ }
+
+ return dict_set_value(buf->b_vars, name, value, err);
}
String buffer_get_option(Buffer buffer, String name, Error *err)
diff --git a/src/api/buffer.h b/src/api/buffer.h
index 516df04ae4..6c72a9f099 100644
--- a/src/api/buffer.h
+++ b/src/api/buffer.h
@@ -84,7 +84,8 @@ Object buffer_get_var(Buffer buffer, String name, Error *err);
/// @param name The variable name
/// @param value The variable value
/// @param[out] err Details of an error that may have occurred
-void buffer_set_var(Buffer buffer, String name, Object value, Error *err);
+/// @return The old value
+Object buffer_set_var(Buffer buffer, String name, Object value, Error *err);
/// Gets a buffer option value
///