summaryrefslogtreecommitdiffstats
path: root/src/if_mzsch.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-12-31 17:41:01 +0100
committerBram Moolenaar <Bram@vim.org>2020-12-31 17:41:01 +0100
commitdd1f426bd617ac6a775f2e7795ff0b159e3fa315 (patch)
tree4ff4b05181d01272e12a482a91dec6a6ef5095bc /src/if_mzsch.c
parentca2f7e7af32d51c2be378a5298bc85958c877653 (diff)
patch 8.2.2254: Vim9: bool option type is numberv8.2.2254
Problem: Vim9: bool option type is number. Solution: Have get_option_value() return a different value for bool and number options. (closes #7583)
Diffstat (limited to 'src/if_mzsch.c')
-rw-r--r--src/if_mzsch.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/if_mzsch.c b/src/if_mzsch.c
index 7b52936709..58b169231b 100644
--- a/src/if_mzsch.c
+++ b/src/if_mzsch.c
@@ -1712,7 +1712,7 @@ get_option(void *data, int argc, Scheme_Object **argv)
Vim_Prim *prim = (Vim_Prim *)data;
long value;
char *strval;
- int rc;
+ getoption_T rc;
Scheme_Object *rval = NULL;
Scheme_Object *name = NULL;
int opt_flags = 0;
@@ -1754,27 +1754,30 @@ get_option(void *data, int argc, Scheme_Object **argv)
scheme_wrong_type(prim->name, "vim-buffer/window", 1, argc, argv);
}
- rc = get_option_value(BYTE_STRING_VALUE(name), &value, (char_u **)&strval, opt_flags);
+ rc = get_option_value(BYTE_STRING_VALUE(name), &value, (char_u **)&strval,
+ opt_flags);
curbuf = save_curb;
curwin = save_curw;
switch (rc)
{
- case 1:
+ case gov_bool:
+ case gov_number:
MZ_GC_UNREG();
return scheme_make_integer_value(value);
- case 0:
+ case gov_string:
rval = scheme_make_byte_string(strval);
MZ_GC_CHECK();
vim_free(strval);
MZ_GC_UNREG();
return rval;
- case -1:
- case -2:
+ case gov_hidden_bool:
+ case gov_hidden_number:
+ case gov_hidden_string:
MZ_GC_UNREG();
raise_vim_exn(_("hidden option"));
//NOTREACHED
- case -3:
+ case gov_unknown:
MZ_GC_UNREG();
raise_vim_exn(_("unknown option"));
//NOTREACHED