Murr, Florian schrieb:
Dear XOTcl-guys! I tried to upgrade from Tcl8.4+XOTcl1.5.3 (all my projects worked fine here!) to Tcl8.5b1, but my projects won't run due to some XOTcl problems. The following snippet is extracted from my project and I tested it with XOTcl1.5.5 (from WinTclTk) and XOTcl1.5.6 from ActiveState-Teacup. But both failed with the same error message. My guess: Non-positional Arguments don't work!
Dear all,
not sure if this helps immediately, since your are refering to binary distros, but however, below is the fix to the problem. Tcl 8.5 seems much more agressive in sharing variables. The variable was set, but lost later, maybe due to shimmering. Switching back to the more conservative approach helps. The change will be included in the next xotcl release.
best regards -gustaf neumann
--- generic/xotcl.c~ 2007-10-09 20:44:45.000000000 +0200 +++ generic/xotcl.c 2007-10-29 21:48:13.000000000 +0100 @@ -11438,9 +11438,9 @@ r1 = Tcl_ListObjGetElements(in, nonposArgsDefv[i], &npac, &npav); if (r1 == TCL_OK) { if (npac == 3) { - Tcl_ObjSetVar2(in, npav[0], NULL, npav[2], 0); + Tcl_SetVar2Ex(in, ObjStr(npav[0]), NULL, npav[2], 0); } else if (npac == 2 && !strcmp(ObjStr(npav[1]), "switch")) { - Tcl_ObjSetVar2(in, npav[0], NULL, Tcl_NewBooleanObj(0), 0); + Tcl_SetVar2Ex(in, ObjStr(npav[0]), NULL, Tcl_NewBooleanObj(0), 0); } } }