From f1ced96c28b7db7b3dad9b0ca2f71f8d046ef732 Mon Sep 17 00:00:00 2001 From: ZyX Date: Thu, 11 Feb 2016 02:01:17 +0300 Subject: api: Replace set_var(name, NIL) with del_var(name) --- src/nvim/api/buffer.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src/nvim/api/buffer.c') diff --git a/src/nvim/api/buffer.c b/src/nvim/api/buffer.c index c25a9789c5..075f101f61 100644 --- a/src/nvim/api/buffer.c +++ b/src/nvim/api/buffer.c @@ -423,7 +423,7 @@ Object buffer_get_var(Buffer buffer, String name, Error *err) return dict_get_value(buf->b_vars, name, err); } -/// Sets a buffer-scoped (b:) variable. 'nil' value deletes the variable. +/// Sets a buffer-scoped (b:) variable /// /// @param buffer The buffer handle /// @param name The variable name @@ -438,7 +438,24 @@ Object buffer_set_var(Buffer buffer, String name, Object value, Error *err) return (Object) OBJECT_INIT; } - return dict_set_value(buf->b_vars, name, value, err); + return dict_set_value(buf->b_vars, name, value, false, err); +} + +/// Removes a buffer-scoped (b:) variable +/// +/// @param buffer The buffer handle +/// @param name The variable name +/// @param[out] err Details of an error that may have occurred +/// @return The old value +Object buffer_del_var(Buffer buffer, String name, Error *err) +{ + buf_T *buf = find_buffer_by_handle(buffer, err); + + if (!buf) { + return (Object) OBJECT_INIT; + } + + return dict_set_value(buf->b_vars, name, NIL, true, err); } /// Gets a buffer option value -- cgit From 7cdd01983aeb452e0a3f3eb027e75fe02ce48718 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 21 Feb 2016 05:17:20 +0300 Subject: api/documentation: Add a warning that nil may mean v:null --- src/nvim/api/buffer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/nvim/api/buffer.c') diff --git a/src/nvim/api/buffer.c b/src/nvim/api/buffer.c index 075f101f61..a01188f98c 100644 --- a/src/nvim/api/buffer.c +++ b/src/nvim/api/buffer.c @@ -429,7 +429,10 @@ 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 -/// @return The old value +/// @return The old value or nil if there was no previous value. +/// +/// @warning It may return nil if there was no previous value +/// or if previous value was `v:null`. Object buffer_set_var(Buffer buffer, String name, Object value, Error *err) { buf_T *buf = find_buffer_by_handle(buffer, err); -- cgit From 25bb08dad930a975010798c592b5277d1b5a18b0 Mon Sep 17 00:00:00 2001 From: ZyX Date: Thu, 17 Mar 2016 23:31:31 +0300 Subject: api: Add warnings about the returned value to \*del_var functions --- src/nvim/api/buffer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/nvim/api/buffer.c') diff --git a/src/nvim/api/buffer.c b/src/nvim/api/buffer.c index a01188f98c..55b535c78c 100644 --- a/src/nvim/api/buffer.c +++ b/src/nvim/api/buffer.c @@ -449,7 +449,10 @@ Object buffer_set_var(Buffer buffer, String name, Object value, Error *err) /// @param buffer The buffer handle /// @param name The variable name /// @param[out] err Details of an error that may have occurred -/// @return The old value +/// @return The old value or nil if there was no previous value. +/// +/// @warning It may return nil if there was no previous value +/// or if previous value was `v:null`. Object buffer_del_var(Buffer buffer, String name, Error *err) { buf_T *buf = find_buffer_by_handle(buffer, err); -- cgit