diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-12-31 18:11:16 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-12-31 18:11:16 +0100 |
commit | 1779ff48427931736998a6e5621b5cbe4d99c3e3 (patch) | |
tree | d5d90e2a97c96b1e16c434075372a097edd66e83 /src/if_tcl.c | |
parent | dd1f426bd617ac6a775f2e7795ff0b159e3fa315 (diff) |
patch 8.2.2255: Tcl test failsv8.2.2255
Problem: Tcl test fails.
Solution: Change option handling.
Diffstat (limited to 'src/if_tcl.c')
-rw-r--r-- | src/if_tcl.c | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/src/if_tcl.c b/src/if_tcl.c index 2775221f46..47e734b204 100644 --- a/src/if_tcl.c +++ b/src/if_tcl.c @@ -1281,7 +1281,7 @@ tclsetoption( { int err, nobjs, idx; char_u *option; - int isnum; + getoption_T gov; long lval; char_u *sval; Tcl_Obj *resobj; @@ -1298,15 +1298,16 @@ tclsetoption( option = (char_u *)Tcl_GetStringFromObj(objv[objn], NULL); ++objn; - isnum = get_option_value(option, &lval, &sval, 0); + gov = get_option_value(option, &lval, &sval, 0); err = TCL_OK; - switch (isnum) + switch (gov) { - case 0: + case gov_string: Tcl_SetResult(interp, (char *)sval, TCL_VOLATILE); vim_free(sval); break; - case 1: + case gov_bool: + case gov_number: resobj = Tcl_NewLongObj(lval); Tcl_SetObjResult(interp, resobj); break; @@ -1316,7 +1317,7 @@ tclsetoption( } if (nobjs == 2) { - if (isnum) + if (gov != gov_string) { sval = NULL; // avoid compiler warning err = Tcl_GetIndexFromObj(interp, objv[objn], optkw, "", 0, &idx); @@ -1326,17 +1327,19 @@ tclsetoption( err = Tcl_GetLongFromObj(interp, objv[objn], &lval); } else - switch (idx) { - case OPT_ON: - lval = 1; - break; - case OPT_OFF: - lval = 0; - break; - case OPT_TOGGLE: - lval = !lval; - break; + switch (idx) + { + case OPT_ON: + lval = 1; + break; + case OPT_OFF: + lval = 0; + break; + case OPT_TOGGLE: + lval = !lval; + break; + } } } else |