Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Eliminate all usage of Tcl_GetStringResult() and Tcl_StringMatch() |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
2d510e2305efa901464edd8bead53da6 |
User & Date: | jan.nijtmans 2019-05-09 20:56:24.260 |
Context
2019-05-10
| ||
12:36 | Always compile Itcl with -DTCL_NO_DEPRECATED, since it then only uses the public TIP #139 stub entries, not the private ones. check-in: b529534754 user: jan.nijtmans tags: trunk | |
2019-05-09
| ||
20:56 | Eliminate all usage of Tcl_GetStringResult() and Tcl_StringMatch() check-in: 2d510e2305 user: jan.nijtmans tags: trunk | |
2019-03-15
| ||
14:03 | Disable some warnings when compiling with MSVC (Same warnings are disabled in Tcl as well) check-in: 8f8d3e9388 user: jan.nijtmans tags: trunk | |
Changes
Changes to generic/itclBuiltin.c.
︙ | ︙ | |||
1506 1507 1508 1509 1510 1511 1512 | Tcl_DecrRefCount(newObjv[0]); } ckfree((char *)newObjv); if (listPtr != NULL) { Tcl_DecrRefCount(listPtr); } if (result == TCL_ERROR) { | | | 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 | Tcl_DecrRefCount(newObjv[0]); } ckfree((char *)newObjv); if (listPtr != NULL) { Tcl_DecrRefCount(listPtr); } if (result == TCL_ERROR) { resStr = Tcl_GetString(Tcl_GetObjResult(interp)); /* FIXME ugly hack at the moment !! */ if (strncmp(resStr, "wrong # args: should be ", 24) == 0) { resPtr = Tcl_NewStringObj("", -1); Tcl_AppendToObj(resPtr, resStr, 25); resStr += 25; Tcl_AppendToObj(resPtr, Tcl_GetString(iclsPtr->namePtr), -1); |
︙ | ︙ | |||
1805 1806 1807 1808 1809 1810 1811 | if (listPtr != NULL) { Tcl_DecrRefCount(listPtr); } ckfree((char *)newObjv); if (result == TCL_OK) { return TCL_OK; } | | | 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 | if (listPtr != NULL) { Tcl_DecrRefCount(listPtr); } ckfree((char *)newObjv); if (result == TCL_OK) { return TCL_OK; } resStr = Tcl_GetString(Tcl_GetObjResult(interp)); /* FIXME ugly hack at the moment !! */ if (strncmp(resStr, "wrong # args: should be ", 24) == 0) { resPtr = Tcl_NewStringObj("", -1); Tcl_AppendToObj(resPtr, resStr, 25); resStr += 25; Tcl_AppendToObj(resPtr, Tcl_GetString(iclsPtr->namePtr), -1); resStr += strlen(val); |
︙ | ︙ | |||
2990 2991 2992 2993 2994 2995 2996 | newObjv = (Tcl_Obj **)ckalloc(sizeof(Tcl_Obj *) * (objc - 3)); memcpy(newObjv, objv + 3, sizeof(Tcl_Obj *) * ((objc - 3))); ItclShowArgs(1, "BiInstallComponent", objc - 3, newObjv); result = Tcl_EvalObjv(interp, objc - 3, newObjv, 0); if (result != TCL_OK) { return result; } | | | 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 | newObjv = (Tcl_Obj **)ckalloc(sizeof(Tcl_Obj *) * (objc - 3)); memcpy(newObjv, objv + 3, sizeof(Tcl_Obj *) * ((objc - 3))); ItclShowArgs(1, "BiInstallComponent", objc - 3, newObjv); result = Tcl_EvalObjv(interp, objc - 3, newObjv, 0); if (result != TCL_OK) { return result; } componentValue = Tcl_GetString(Tcl_GetObjResult(interp)); objPtr = Tcl_NewStringObj(ITCL_VARIABLES_NAMESPACE, -1); Tcl_AppendToObj(objPtr, (Tcl_GetObjectNamespace(contextIclsPtr->oPtr))->fullName, -1); Tcl_AppendToObj(objPtr, "::", -1); Tcl_AppendToObj(objPtr, componentName, -1); Tcl_SetVar2(interp, Tcl_GetString(objPtr), NULL, componentValue, 0); |
︙ | ︙ | |||
3765 3766 3767 3768 3769 3770 3771 | Tcl_AppendToObj(objPtr, Tcl_GetString(objv[idx]), -1); Tcl_IncrRefCount(objPtr); result = Tcl_EvalObjEx(interp, objPtr, 0); Tcl_DecrRefCount(objPtr); if (result == TCL_OK) { ItclSetInstanceVar(interp, "itcl_options", Tcl_GetString(objv[idx]), | | | 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 | Tcl_AppendToObj(objPtr, Tcl_GetString(objv[idx]), -1); Tcl_IncrRefCount(objPtr); result = Tcl_EvalObjEx(interp, objPtr, 0); Tcl_DecrRefCount(objPtr); if (result == TCL_OK) { ItclSetInstanceVar(interp, "itcl_options", Tcl_GetString(objv[idx]), Tcl_GetString(Tcl_GetObjResult(interp)), ioPtr, iclsPtr); } } } } ItclAddClassComponentDictInfo(interp, iclsPtr, icPtr); } return TCL_OK; } |
Changes to generic/itclCmd.c.
︙ | ︙ | |||
253 254 255 256 257 258 259 | if (originalCmd) { cmd = originalCmd; } Tcl_CreateHashEntry(&unique, (char*)cmd, &newEntry); if (newEntry && ((pattern == NULL) || | | | 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 | if (originalCmd) { cmd = originalCmd; } Tcl_CreateHashEntry(&unique, (char*)cmd, &newEntry); if (newEntry && ((pattern == NULL) || Tcl_StringCaseMatch((const char *)cmdName, pattern, 0))) { Tcl_ListObjAppendElement((Tcl_Interp*)NULL, Tcl_GetObjResult(interp), objPtr); } else { /* if not appended to the result, free objPtr. */ Tcl_DecrRefCount(objPtr); } |
︙ | ︙ | |||
436 437 438 439 440 441 442 | objPtr = Tcl_NewStringObj((const char *)cmdName, -1); } Tcl_CreateHashEntry(&unique, (char*)cmd, &newEntry); match = 0; if (newEntry && | | | | 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 | objPtr = Tcl_NewStringObj((const char *)cmdName, -1); } Tcl_CreateHashEntry(&unique, (char*)cmd, &newEntry); match = 0; if (newEntry && (!pattern || Tcl_StringCaseMatch((const char *)cmdName, pattern, 0))) { if ((iclsPtr == NULL) || (contextIoPtr->iclsPtr == iclsPtr)) { if (isaDefn == NULL) { match = 1; } else { entry = Tcl_FindHashEntry( &contextIoPtr->iclsPtr->heritage, |
︙ | ︙ |
Changes to generic/itclDecls.h.
1 2 3 4 5 6 7 8 9 10 11 12 13 | /* * This file is (mostly) automatically generated from itcl.decls. */ #ifndef _ITCLDECLS #define _ITCLDECLS #if defined(USE_ITCL_STUBS) ITCLAPI const char *Itcl_InitStubs( Tcl_Interp *, const char *version, int exact); #else | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | /* * This file is (mostly) automatically generated from itcl.decls. */ #ifndef _ITCLDECLS #define _ITCLDECLS #if defined(USE_ITCL_STUBS) ITCLAPI const char *Itcl_InitStubs( Tcl_Interp *, const char *version, int exact); #else #define Itcl_InitStubs(interp, version, exact) Tcl_PkgRequireEx(interp,"itcl",version,exact,NULL) #endif /* !BEGIN!: Do not edit below this line. */ #define ITCL_STUBS_EPOCH 0 |
︙ | ︙ |
Changes to generic/itclInfo.c.
︙ | ︙ | |||
789 790 791 792 793 794 795 | pattern = Tcl_GetString(objv[1]); } listPtr = Tcl_NewListObj(0, NULL); tablePtr = &iclsPtr->options; FOREACH_HASH_VALUE(ioptPtr, tablePtr) { name = Tcl_GetString(ioptPtr->namePtr); if ((pattern == NULL) || | | | | 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 | pattern = Tcl_GetString(objv[1]); } listPtr = Tcl_NewListObj(0, NULL); tablePtr = &iclsPtr->options; FOREACH_HASH_VALUE(ioptPtr, tablePtr) { name = Tcl_GetString(ioptPtr->namePtr); if ((pattern == NULL) || Tcl_StringCaseMatch(name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, Tcl_NewStringObj(Tcl_GetString(ioptPtr->namePtr), -1)); } } tablePtr = &iclsPtr->delegatedOptions; FOREACH_HASH_VALUE(idoPtr, tablePtr) { name = Tcl_GetString(idoPtr->namePtr); if (strcmp(name, "*") != 0) { if ((pattern == NULL) || Tcl_StringCaseMatch(name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, Tcl_NewStringObj(Tcl_GetString(idoPtr->namePtr), -1)); } } else { if (idoPtr->icPtr == NULL) { Tcl_AppendResult(interp, "component \"", Tcl_GetString(idoPtr->namePtr), |
︙ | ︙ | |||
829 830 831 832 833 834 835 | for (i = 0; i < lObjc; i++) { Tcl_ListObjIndex(interp, lObjv[i], 0, &objPtr); hPtr2 = Tcl_FindHashEntry(&idoPtr->exceptions, (char *)objPtr); if (hPtr2 == NULL) { name = Tcl_GetString(objPtr); if ((pattern == NULL) || | | | 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 | for (i = 0; i < lObjc; i++) { Tcl_ListObjIndex(interp, lObjv[i], 0, &objPtr); hPtr2 = Tcl_FindHashEntry(&idoPtr->exceptions, (char *)objPtr); if (hPtr2 == NULL) { name = Tcl_GetString(objPtr); if ((pattern == NULL) || Tcl_StringCaseMatch(name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, objPtr); } } } } } } |
︙ | ︙ | |||
1587 1588 1589 1590 1591 1592 1593 | ckfree((char *)newObjv); } else { listPtr = Tcl_NewListObj(0, NULL); FOREACH_HASH_VALUE(ivPtr, &iclsPtr->variables) { if ((ivPtr->flags & ITCL_VARIABLE) != 0) { name = Tcl_GetString(ivPtr->namePtr); if ((pattern == NULL) || | | | 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 | ckfree((char *)newObjv); } else { listPtr = Tcl_NewListObj(0, NULL); FOREACH_HASH_VALUE(ivPtr, &iclsPtr->variables) { if ((ivPtr->flags & ITCL_VARIABLE) != 0) { name = Tcl_GetString(ivPtr->namePtr); if ((pattern == NULL) || Tcl_StringCaseMatch((const char *)name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, ivPtr->namePtr); } } } /* always add the itcl_options variable */ Tcl_ListObjAppendElement(interp, listPtr, Tcl_NewStringObj("itcl_options", -1)); |
︙ | ︙ | |||
3262 3263 3264 3265 3266 3267 3268 | iclsPtr = ioPtr->iclsPtr; } if (objc == 2) { pattern = Tcl_GetString(objv[1]); } listPtr = Tcl_NewListObj(0, NULL); name = "destroy"; | | | | | | 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 | iclsPtr = ioPtr->iclsPtr; } if (objc == 2) { pattern = Tcl_GetString(objv[1]); } listPtr = Tcl_NewListObj(0, NULL); name = "destroy"; if ((pattern == NULL) || Tcl_StringCaseMatch((const char *)name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, Tcl_NewStringObj(name, -1)); } name = "info"; if ((pattern == NULL) || Tcl_StringCaseMatch((const char *)name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, Tcl_NewStringObj(name, -1)); } FOREACH_HASH_VALUE(imPtr, &iclsPtr->functions) { name = Tcl_GetString(imPtr->namePtr); if (strcmp(name, "*") == 0) { continue; } if (strcmp(name, "destroy") == 0) { continue; } if (strcmp(name, "info") == 0) { continue; } if ((imPtr->flags & ITCL_METHOD) && !(imPtr->flags & ITCL_CONSTRUCTOR) && !(imPtr->flags & ITCL_DESTRUCTOR) && !(imPtr->flags & ITCL_COMMON) && !(imPtr->codePtr->flags & ITCL_BUILTIN)) { if ((pattern == NULL) || Tcl_StringCaseMatch((const char *)name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, Tcl_NewStringObj(Tcl_GetString(imPtr->namePtr), -1)); } } } FOREACH_HASH_VALUE(idmPtr, &iclsPtr->delegatedFunctions) { name = Tcl_GetString(idmPtr->namePtr); if (strcmp(name, "*") == 0) { continue; } if (strcmp(name, "destroy") == 0) { continue; } if (strcmp(name, "info") == 0) { continue; } if (idmPtr->flags & ITCL_METHOD) { if ((pattern == NULL) || Tcl_StringCaseMatch((const char *)name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, Tcl_NewStringObj(Tcl_GetString(idmPtr->namePtr), -1)); } } } Tcl_SetObjResult(interp, listPtr); return TCL_OK; |
︙ | ︙ | |||
3381 3382 3383 3384 3385 3386 3387 | tablePtr = &iclsPtr->options; } else { tablePtr = &ioPtr->objectOptions; } FOREACH_HASH_VALUE(ioptPtr, tablePtr) { name = Tcl_GetString(ioptPtr->namePtr); if ((pattern == NULL) || | | | | 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 | tablePtr = &iclsPtr->options; } else { tablePtr = &ioPtr->objectOptions; } FOREACH_HASH_VALUE(ioptPtr, tablePtr) { name = Tcl_GetString(ioptPtr->namePtr); if ((pattern == NULL) || Tcl_StringCaseMatch(name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, Tcl_NewStringObj(Tcl_GetString(ioptPtr->namePtr), -1)); } } if (ioPtr == NULL) { tablePtr = &iclsPtr->delegatedOptions; } else { tablePtr = &ioPtr->objectDelegatedOptions; } FOREACH_HASH_VALUE(idoPtr, tablePtr) { name = Tcl_GetString(idoPtr->namePtr); if (strcmp(name, "*") != 0) { if ((pattern == NULL) || Tcl_StringCaseMatch(name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, Tcl_NewStringObj(Tcl_GetString(idoPtr->namePtr), -1)); } } else { if (idoPtr->icPtr == NULL) { Tcl_AppendResult(interp, "component \"", Tcl_GetString(idoPtr->namePtr), |
︙ | ︙ | |||
3425 3426 3427 3428 3429 3430 3431 | for (i = 0; i < lObjc; i++) { Tcl_ListObjIndex(interp, lObjv[i], 0, &objPtr); hPtr2 = Tcl_FindHashEntry(&idoPtr->exceptions, (char *)objPtr); if (hPtr2 == NULL) { name = Tcl_GetString(objPtr); if ((pattern == NULL) || | | | 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 | for (i = 0; i < lObjc; i++) { Tcl_ListObjIndex(interp, lObjv[i], 0, &objPtr); hPtr2 = Tcl_FindHashEntry(&idoPtr->exceptions, (char *)objPtr); if (hPtr2 == NULL) { name = Tcl_GetString(objPtr); if ((pattern == NULL) || Tcl_StringCaseMatch(name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, objPtr); } } } } } } |
︙ | ︙ | |||
3480 3481 3482 3483 3484 3485 3486 | pattern = Tcl_GetString(objv[1]); } listPtr = Tcl_NewListObj(0, NULL); FOREACH_HASH_VALUE(iclsPtr, &infoPtr->nameClasses) { if (iclsPtr->flags & ITCL_TYPE) { name = Tcl_GetString(iclsPtr->namePtr); if ((pattern == NULL) || | | | 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 | pattern = Tcl_GetString(objv[1]); } listPtr = Tcl_NewListObj(0, NULL); FOREACH_HASH_VALUE(iclsPtr, &infoPtr->nameClasses) { if (iclsPtr->flags & ITCL_TYPE) { name = Tcl_GetString(iclsPtr->namePtr); if ((pattern == NULL) || Tcl_StringCaseMatch(name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, Tcl_NewStringObj(Tcl_GetString(iclsPtr->namePtr), -1)); } } } Tcl_SetObjResult(interp, listPtr); return TCL_OK; |
︙ | ︙ | |||
3549 3550 3551 3552 3553 3554 3555 | listPtr = Tcl_NewListObj(0, NULL); Itcl_InitHierIter(&hier, iclsPtr); iclsPtr2 = Itcl_AdvanceHierIter(&hier); while (iclsPtr2 != NULL) { FOREACH_HASH_VALUE(icPtr, &iclsPtr2->components) { name = Tcl_GetString(icPtr->namePtr); if ((pattern == NULL) || | | | 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 | listPtr = Tcl_NewListObj(0, NULL); Itcl_InitHierIter(&hier, iclsPtr); iclsPtr2 = Itcl_AdvanceHierIter(&hier); while (iclsPtr2 != NULL) { FOREACH_HASH_VALUE(icPtr, &iclsPtr2->components) { name = Tcl_GetString(icPtr->namePtr); if ((pattern == NULL) || Tcl_StringCaseMatch(name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, Tcl_NewStringObj(Tcl_GetString(icPtr->namePtr), -1)); } } iclsPtr2 = Itcl_AdvanceHierIter(&hier); } Itcl_DeleteHierIter(&hier); |
︙ | ︙ | |||
3832 3833 3834 3835 3836 3837 3838 | iclsPtr = ioPtr->iclsPtr; } if (objc > 1) { pattern = Tcl_GetString(objv[1]); } listPtr = Tcl_NewListObj(0, NULL); name = "create"; | | | | | | 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 | iclsPtr = ioPtr->iclsPtr; } if (objc > 1) { pattern = Tcl_GetString(objv[1]); } listPtr = Tcl_NewListObj(0, NULL); name = "create"; if ((pattern == NULL) || Tcl_StringCaseMatch((const char *)name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, Tcl_NewStringObj(name, -1)); } name = "destroy"; if ((pattern == NULL) || Tcl_StringCaseMatch((const char *)name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, Tcl_NewStringObj(name, -1)); } name = "info"; if ((pattern == NULL) || Tcl_StringCaseMatch((const char *)name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, Tcl_NewStringObj(name, -1)); } FOREACH_HASH_VALUE(imPtr, &iclsPtr->functions) { name = Tcl_GetString(imPtr->namePtr); if (strcmp(name, "*") == 0) { continue; } if (strcmp(name, "create") == 0) { continue; } if (strcmp(name, "destroy") == 0) { continue; } if (strcmp(name, "info") == 0) { continue; } if (imPtr->flags & ITCL_TYPE_METHOD) { if ((pattern == NULL) || Tcl_StringCaseMatch((const char *)name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, Tcl_NewStringObj(Tcl_GetString(imPtr->namePtr), -1)); } } } FOREACH_HASH_VALUE(idmPtr, &iclsPtr->delegatedFunctions) { name = Tcl_GetString(idmPtr->namePtr); |
︙ | ︙ | |||
3884 3885 3886 3887 3888 3889 3890 | continue; } if (strcmp(name, "info") == 0) { continue; } if (idmPtr->flags & ITCL_TYPE_METHOD) { if ((pattern == NULL) || | | | 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 | continue; } if (strcmp(name, "info") == 0) { continue; } if (idmPtr->flags & ITCL_TYPE_METHOD) { if ((pattern == NULL) || Tcl_StringCaseMatch((const char *)name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, Tcl_NewStringObj(Tcl_GetString(idmPtr->namePtr), -1)); } } } Tcl_SetObjResult(interp, listPtr); return TCL_OK; |
︙ | ︙ | |||
3941 3942 3943 3944 3945 3946 3947 | } if (objc == 2) { pattern = Tcl_GetString(objv[1]); } listPtr = Tcl_NewListObj(0, NULL); FOREACH_HASH_VALUE(ivPtr, &iclsPtr->variables) { if ((pattern == NULL) || | | | 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 | } if (objc == 2) { pattern = Tcl_GetString(objv[1]); } listPtr = Tcl_NewListObj(0, NULL); FOREACH_HASH_VALUE(ivPtr, &iclsPtr->variables) { if ((pattern == NULL) || Tcl_StringCaseMatch(Tcl_GetString(ivPtr->namePtr), pattern, 0)) { if (ivPtr->flags & ITCL_TYPE_VARIABLE) { Tcl_ListObjAppendElement(interp, listPtr, ivPtr->fullNamePtr); } } } Tcl_SetObjResult(interp, listPtr); return TCL_OK; |
︙ | ︙ | |||
4375 4376 4377 4378 4379 4380 4381 | objPtr = Tcl_NewStringObj(Tcl_GetCommandName(interp, ioPtr->accessCmd), -1); } else { objPtr = Tcl_NewObj(); Tcl_GetCommandFullName(interp, ioPtr->accessCmd, objPtr); } if ((pattern == NULL) || | | | 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 | objPtr = Tcl_NewStringObj(Tcl_GetCommandName(interp, ioPtr->accessCmd), -1); } else { objPtr = Tcl_NewObj(); Tcl_GetCommandFullName(interp, ioPtr->accessCmd, objPtr); } if ((pattern == NULL) || Tcl_StringCaseMatch(Tcl_GetString(objPtr), pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, objPtr); } else { Tcl_DecrRefCount(objPtr); } } } Tcl_SetObjResult(interp, listPtr); |
︙ | ︙ | |||
4438 4439 4440 4441 4442 4443 4444 | } listPtr = Tcl_NewListObj(0, NULL); FOREACH_HASH_VALUE(idoPtr, &iclsPtr->delegatedOptions) { if (iclsPtr->flags & (ITCL_TYPE|ITCL_WIDGETADAPTOR|ITCL_WIDGET|ITCL_ECLASS)) { name = Tcl_GetString(idoPtr->namePtr); if ((pattern == NULL) || | | | 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 | } listPtr = Tcl_NewListObj(0, NULL); FOREACH_HASH_VALUE(idoPtr, &iclsPtr->delegatedOptions) { if (iclsPtr->flags & (ITCL_TYPE|ITCL_WIDGETADAPTOR|ITCL_WIDGET|ITCL_ECLASS)) { name = Tcl_GetString(idoPtr->namePtr); if ((pattern == NULL) || Tcl_StringCaseMatch(name, pattern, 0)) { objPtr = Tcl_NewListObj(0, NULL); Tcl_ListObjAppendElement(interp, objPtr, idoPtr->namePtr); if (idoPtr->icPtr != NULL) { Tcl_ListObjAppendElement(interp, objPtr, idoPtr->icPtr->namePtr); } else { |
︙ | ︙ | |||
4510 4511 4512 4513 4514 4515 4516 | } listPtr = Tcl_NewListObj(0, NULL); FOREACH_HASH_VALUE(idmPtr, &iclsPtr->delegatedFunctions) { if (iclsPtr->flags & (ITCL_TYPE|ITCL_WIDGETADAPTOR|ITCL_WIDGET|ITCL_ECLASS)) { name = Tcl_GetString(idmPtr->namePtr); if ((pattern == NULL) || | | | 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 | } listPtr = Tcl_NewListObj(0, NULL); FOREACH_HASH_VALUE(idmPtr, &iclsPtr->delegatedFunctions) { if (iclsPtr->flags & (ITCL_TYPE|ITCL_WIDGETADAPTOR|ITCL_WIDGET|ITCL_ECLASS)) { name = Tcl_GetString(idmPtr->namePtr); if ((pattern == NULL) || Tcl_StringCaseMatch(name, pattern, 0)) { if ((idmPtr->flags & ITCL_TYPE_METHOD) == 0) { objPtr = Tcl_NewListObj(0, NULL); Tcl_ListObjAppendElement(interp, objPtr, idmPtr->namePtr); if (idmPtr->icPtr != NULL) { Tcl_ListObjAppendElement(interp, objPtr, idmPtr->icPtr->namePtr); |
︙ | ︙ | |||
4584 4585 4586 4587 4588 4589 4590 | } listPtr = Tcl_NewListObj(0, NULL); FOREACH_HASH_VALUE(idmPtr, &iclsPtr->delegatedFunctions) { if (iclsPtr->flags & (ITCL_TYPE|ITCL_WIDGETADAPTOR|ITCL_WIDGET|ITCL_ECLASS)) { name = Tcl_GetString(idmPtr->namePtr); if ((pattern == NULL) || | | | 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 | } listPtr = Tcl_NewListObj(0, NULL); FOREACH_HASH_VALUE(idmPtr, &iclsPtr->delegatedFunctions) { if (iclsPtr->flags & (ITCL_TYPE|ITCL_WIDGETADAPTOR|ITCL_WIDGET|ITCL_ECLASS)) { name = Tcl_GetString(idmPtr->namePtr); if ((pattern == NULL) || Tcl_StringCaseMatch(name, pattern, 0)) { if (idmPtr->flags & ITCL_TYPE_METHOD) { objPtr = Tcl_NewListObj(0, NULL); Tcl_ListObjAppendElement(interp, objPtr, idmPtr->namePtr); if (idmPtr->icPtr != NULL) { Tcl_ListObjAppendElement(interp, objPtr, idmPtr->icPtr->namePtr); |
︙ | ︙ |
Changes to itclWidget/generic/itclWidgetInfo.c.
︙ | ︙ | |||
97 98 99 100 101 102 103 | } listPtr = Tcl_NewListObj(0, NULL); cPtrPtr = hullTypes; while (*cPtrPtr != NULL) { name = *cPtrPtr; objPtr = Tcl_NewStringObj(name, -1); if ((pattern == NULL) || | | | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | } listPtr = Tcl_NewListObj(0, NULL); cPtrPtr = hullTypes; while (*cPtrPtr != NULL) { name = *cPtrPtr; objPtr = Tcl_NewStringObj(name, -1); if ((pattern == NULL) || Tcl_StringCaseMatch(name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, objPtr); } cPtrPtr++; } Tcl_SetObjResult(interp, listPtr); return TCL_OK; } |
︙ | ︙ | |||
145 146 147 148 149 150 151 | if (iclsPtr->flags & ITCL_WIDGET) { if (iclsPtr->widgetClassPtr != NULL) { Tcl_CreateHashEntry(&wClasses, (char *)iclsPtr->widgetClassPtr, &isNew); if (isNew) { name = Tcl_GetString(iclsPtr->widgetClassPtr); if ((pattern == NULL) || | | | 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | if (iclsPtr->flags & ITCL_WIDGET) { if (iclsPtr->widgetClassPtr != NULL) { Tcl_CreateHashEntry(&wClasses, (char *)iclsPtr->widgetClassPtr, &isNew); if (isNew) { name = Tcl_GetString(iclsPtr->widgetClassPtr); if ((pattern == NULL) || Tcl_StringCaseMatch(name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, iclsPtr->widgetClassPtr); } } } } } |
︙ | ︙ | |||
190 191 192 193 194 195 196 | } listPtr = Tcl_NewListObj(0, NULL); FOREACH_HASH_VALUE(iclsPtr, &infoPtr->classes) { if (iclsPtr->flags & ITCL_WIDGET) { name = Tcl_GetString(iclsPtr->namePtr); Tcl_IncrRefCount(iclsPtr->namePtr); if ((pattern == NULL) || | | | 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 | } listPtr = Tcl_NewListObj(0, NULL); FOREACH_HASH_VALUE(iclsPtr, &infoPtr->classes) { if (iclsPtr->flags & ITCL_WIDGET) { name = Tcl_GetString(iclsPtr->namePtr); Tcl_IncrRefCount(iclsPtr->namePtr); if ((pattern == NULL) || Tcl_StringCaseMatch(name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, iclsPtr->namePtr); } } } Tcl_SetObjResult(interp, listPtr); return TCL_OK; } |
︙ | ︙ | |||
230 231 232 233 234 235 236 | pattern = Tcl_GetString(objv[1]); } listPtr = Tcl_NewListObj(0, NULL); FOREACH_HASH_VALUE(iclsPtr, &infoPtr->classes) { if (iclsPtr->flags & ITCL_WIDGETADAPTOR) { name = Tcl_GetString(iclsPtr->namePtr); if ((pattern == NULL) || | | | 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 | pattern = Tcl_GetString(objv[1]); } listPtr = Tcl_NewListObj(0, NULL); FOREACH_HASH_VALUE(iclsPtr, &infoPtr->classes) { if (iclsPtr->flags & ITCL_WIDGETADAPTOR) { name = Tcl_GetString(iclsPtr->namePtr); if ((pattern == NULL) || Tcl_StringCaseMatch(name, pattern, 0)) { Tcl_ListObjAppendElement(interp, listPtr, iclsPtr->namePtr); } } } Tcl_SetObjResult(interp, listPtr); return TCL_OK; } |
Changes to itclWidget/generic/itclWidgetObject.c.
︙ | ︙ | |||
257 258 259 260 261 262 263 | return TCL_OK; } objPtr = Tcl_NewStringObj(widgetPath, -1); Tcl_AppendToObj(objPtr, " configure", -1); result = Tcl_EvalObjEx(interp, objPtr, 0); startIdx = 5; | | | 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 | return TCL_OK; } objPtr = Tcl_NewStringObj(widgetPath, -1); Tcl_AppendToObj(objPtr, " configure", -1); result = Tcl_EvalObjEx(interp, objPtr, 0); startIdx = 5; Tcl_SplitList(interp, Tcl_GetString(Tcl_GetObjResult(interp)), &argc, &argv); newObjv = (Tcl_Obj **)ckalloc(sizeof(Tcl_Obj *) * (objc - startIdx + 2 + (argc * 2))); /* insert delegated options before any options on the command line */ newObjv[0] = objv[startIdx - 1]; newObjv[1] = Tcl_NewStringObj("configure", -1); for (j = startIdx; j < objc; j++) { if (*Tcl_GetString(objv[j]) == '-') { |
︙ | ︙ | |||
357 358 359 360 361 362 363 | if (result != TCL_OK) { return result; } } if (starOption) { componentValue = widgetPath; } else { | | | 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 | if (result != TCL_OK) { return result; } } if (starOption) { componentValue = widgetPath; } else { componentValue = Tcl_GetString(Tcl_GetObjResult(interp)); } /* FIXME need something like ItclSetInstanceCommonVar here */ objPtr = Tcl_NewStringObj(ITCL_VARIABLES_NAMESPACE, -1); Tcl_AppendToObj(objPtr, Tcl_GetString(iclsPtr->fullNamePtr), -1); Tcl_AppendToObj(objPtr, "::", -1); Tcl_AppendToObj(objPtr, componentName, -1); Tcl_SetVar2(interp, Tcl_GetString(objPtr), NULL, componentValue, 0); return TCL_OK; } |