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