aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2023-07-13 15:53:07 +0100
committerLewis Russell <lewis6991@gmail.com>2023-08-31 15:08:52 +0100
commit6a449a892bdc25f4984b1cd4dcbe4e7157142a46 (patch)
tree2a255c245457ed7b96699ac64d57c103ae070b0a /src
parent3a45a0db4d5a3981f4fbd575d405a9c6e382b930 (diff)
downloadrneovim-6a449a892bdc25f4984b1cd4dcbe4e7157142a46.tar.gz
rneovim-6a449a892bdc25f4984b1cd4dcbe4e7157142a46.tar.bz2
rneovim-6a449a892bdc25f4984b1cd4dcbe4e7157142a46.zip
refactor(option): remove OPT_CLEAR
Diffstat (limited to 'src')
-rw-r--r--src/nvim/api/options.c3
-rw-r--r--src/nvim/option.c15
-rw-r--r--src/nvim/option_defs.h1
3 files changed, 7 insertions, 12 deletions
diff --git a/src/nvim/api/options.c b/src/nvim/api/options.c
index e33cb72e8d..eb80683365 100644
--- a/src/nvim/api/options.c
+++ b/src/nvim/api/options.c
@@ -465,9 +465,6 @@ OptVal get_option_value_for(const char *const name, uint32_t *flagsp, int scope,
/// @param[in] name Option name.
/// @param[in] value Option value.
/// @param[in] opt_flags Flags: OPT_LOCAL, OPT_GLOBAL, or 0 (both).
-/// If OPT_CLEAR is set, the value of the option
-/// is cleared (the exact semantics of this depend
-/// on the option).
/// @param[in] opt_type Option type. See SREQ_* in option_defs.h.
/// @param[in] from Target buffer/window.
/// @param[out] err Error message, if any.
diff --git a/src/nvim/option.c b/src/nvim/option.c
index c68355f5b1..6c869c26f0 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -3722,9 +3722,6 @@ vimoption_T *get_option(int opt_idx)
/// @param[in] name Option name.
/// @param[in] value Option value. If NIL_OPTVAL, the option value is cleared.
/// @param[in] opt_flags Flags: OPT_LOCAL, OPT_GLOBAL, or 0 (both).
-/// If OPT_CLEAR is set, the value of the option
-/// is cleared (the exact semantics of this depend
-/// on the option).
///
/// @return NULL on success, an untranslated error message on error.
const char *set_option_value(const char *const name, const OptVal value, int opt_flags)
@@ -3765,9 +3762,11 @@ const char *set_option_value(const char *const name, const OptVal value, int opt
// Copy the value so we can modify the copy.
OptVal v = optval_copy(value);
- if (v.type == kOptValTypeNil) {
- opt_flags |= OPT_CLEAR;
+ // Clear an option. For global-local options clear the local value
+ // (the exact semantics of this depend on the option).
+ bool clear = v.type == kOptValTypeNil;
+ if (v.type == kOptValTypeNil) {
// Change the type of the OptVal to the type used by the option so that it can be cleared.
// TODO(famiu): Clean up all of this after set_(num|bool|string)_option() is unified.
if (flags & P_BOOL) {
@@ -3794,7 +3793,7 @@ const char *set_option_value(const char *const name, const OptVal value, int opt
case kOptValTypeNil:
abort(); // This will never happen.
case kOptValTypeBoolean: {
- if (opt_flags & OPT_CLEAR) {
+ if (clear) {
if ((int *)varp == &curbuf->b_p_ar) {
v.data.boolean = kNone;
} else {
@@ -3805,7 +3804,7 @@ const char *set_option_value(const char *const name, const OptVal value, int opt
break;
}
case kOptValTypeNumber: {
- if (opt_flags & OPT_CLEAR) {
+ if (clear) {
if ((long *)varp == &curbuf->b_p_ul) {
v.data.number = NO_LOCAL_UNDOLEVEL;
} else if ((long *)varp == &curwin->w_p_so || (long *)varp == &curwin->w_p_siso) {
@@ -3819,7 +3818,7 @@ const char *set_option_value(const char *const name, const OptVal value, int opt
}
case kOptValTypeString: {
const char *s = v.data.string.data;
- if (s == NULL || opt_flags & OPT_CLEAR) {
+ if (s == NULL || clear) {
s = "";
}
errmsg = set_string_option(opt_idx, s, opt_flags, &value_checked, errbuf, sizeof(errbuf));
diff --git a/src/nvim/option_defs.h b/src/nvim/option_defs.h
index 313d282cef..1007925ccb 100644
--- a/src/nvim/option_defs.h
+++ b/src/nvim/option_defs.h
@@ -70,7 +70,6 @@ typedef enum {
OPT_ONECOLUMN = 0x40, ///< list options one per line
OPT_NO_REDRAW = 0x80, ///< ignore redraw flags on option
OPT_SKIPRTP = 0x100, ///< "skiprtp" in 'sessionoptions'
- OPT_CLEAR = 0x200, ///< Clear local value of an option.
} OptionFlags;
// Return value from get_option_value_strict