patch 8.2.2255: Tcl test fails
Problem: Tcl test fails.
Solution: Change option handling.
diff --git a/src/if_tcl.c b/src/if_tcl.c
index 2775221..47e734b 100644
--- a/src/if_tcl.c
+++ b/src/if_tcl.c
@@ -1281,7 +1281,7 @@
{
int err, nobjs, idx;
char_u *option;
- int isnum;
+ getoption_T gov;
long lval;
char_u *sval;
Tcl_Obj *resobj;
@@ -1298,15 +1298,16 @@
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 @@
}
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 @@
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