Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | CONST -> const, and some more changes directed at making Itcl work with "novem". Not finished yet. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
c4af6df735a2206fd70361e2246d0199 |
User & Date: | jan.nijtmans 2013-10-09 12:06:55.965 |
Context
2013-10-30
| ||
15:29 | Put extern "C" guard around stub table definition: In C++, calling convention on functions through function pointers might be influcenced by that. See for example: http://en.wikipedia.org/wiki/Compatibility_of_C_and_C++ On SUN's C++ compiler this might generate the warning: Warning (Anachronism): Formal argument fn_ptr of type ..... in call to ... is being passed .... check-in: ddf387cd88 user: jan.nijtmans tags: trunk | |
2013-10-09
| ||
12:06 | CONST -> const, and some more changes directed at making Itcl work with "novem". Not finished yet. check-in: c4af6df735 user: jan.nijtmans tags: trunk | |
2013-10-08
| ||
12:49 | Update to latest TEA. Eliminate use of EXTERN and TCL_STORAGE_CLASS: A tiny step directed at making Itcl compile/run with "novem" (not complete yet) check-in: b1ec5cc677 user: jan.nijtmans tags: trunk | |
Changes
Changes to generic/itcl.h.
︙ | ︙ | |||
53 54 55 56 57 58 59 | */ #ifndef ITCL_H_INCLUDED #define ITCL_H_INCLUDED #include <tcl.h> | | | 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | */ #ifndef ITCL_H_INCLUDED #define ITCL_H_INCLUDED #include <tcl.h> #if (TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION < 6) # error Itcl 4 build requires tcl.h from Tcl 8.6 or later #endif /* * For C++ compilers, use extern "C" */ |
︙ | ︙ | |||
107 108 109 110 111 112 113 | # else # define ITCLAPI extern # undef USE_ITCL_STUBS # define USE_ITCL_STUBS 1 # endif #endif | | | 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | # else # define ITCLAPI extern # undef USE_ITCL_STUBS # define USE_ITCL_STUBS 1 # endif #endif #if defined(BUILD_itcl) && !defined(STATIC_BUILD) # define ITCL_EXTERN extern DLLEXPORT #else # define ITCL_EXTERN extern #endif ITCL_EXTERN int Itcl_Init(Tcl_Interp *interp); ITCL_EXTERN int Itcl_SafeInit(Tcl_Interp *interp); |
︙ | ︙ |
Changes to generic/itclEnsemble.c.
︙ | ︙ | |||
1219 1220 1221 1222 1223 1224 1225 | * Otherwise, make room for a new entry. Keep the parts in * lexicographical order, so we can search them quickly * later. */ if (ensData->numParts >= ensData->maxParts) { size = ensData->maxParts*sizeof(EnsemblePart*); partList = (EnsemblePart**)ckalloc((unsigned)2*size); | | | 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 | * Otherwise, make room for a new entry. Keep the parts in * lexicographical order, so we can search them quickly * later. */ if (ensData->numParts >= ensData->maxParts) { size = ensData->maxParts*sizeof(EnsemblePart*); partList = (EnsemblePart**)ckalloc((unsigned)2*size); memcpy(partList, ensData->parts, (size_t)size); ckfree((char*)ensData->parts); ensData->parts = partList; ensData->maxParts *= 2; } for (i=ensData->numParts; i > pos; i--) { |
︙ | ︙ |
Changes to generic/itclInt.h.
︙ | ︙ | |||
33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #include <string.h> #include <ctype.h> #include <tclOO.h> #include "itcl.h" #include "itclMigrate2TclCore.h" #include "itclTclIntStubsFcn.h" /* * Since the Tcl/Tk distribution doesn't perform any asserts, * dynamic loading can fail to find the __assert function. * As a workaround, we'll include our own. */ #undef assert | > > > > > > > > > > | 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | #include <string.h> #include <ctype.h> #include <tclOO.h> #include "itcl.h" #include "itclMigrate2TclCore.h" #include "itclTclIntStubsFcn.h" /* * Utility macros: STRINGIFY takes an argument and wraps it in "" (double * quotation marks). */ #ifndef STRINGIFY # define STRINGIFY(x) STRINGIFY1(x) # define STRINGIFY1(x) #x #endif /* * Since the Tcl/Tk distribution doesn't perform any asserts, * dynamic loading can fail to find the __assert function. * As a workaround, we'll include our own. */ #undef assert |
︙ | ︙ | |||
681 682 683 684 685 686 687 | MODULE_SCOPE Tcl_ObjCmdProc ItclObjectUnknownCommand; MODULE_SCOPE int ItclCheckCallProc(ClientData clientData, Tcl_Interp *interp, Tcl_ObjectContext contextPtr, Tcl_CallFrame *framePtr, int *isFinished); MODULE_SCOPE ItclFoundation *ItclGetFoundation(Tcl_Interp *interp); MODULE_SCOPE Tcl_ObjCmdProc ItclClassCommandDispatcher; MODULE_SCOPE Tcl_Command Itcl_CmdAliasProc(Tcl_Interp *interp, | | | | | | | | | | | | 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 | MODULE_SCOPE Tcl_ObjCmdProc ItclObjectUnknownCommand; MODULE_SCOPE int ItclCheckCallProc(ClientData clientData, Tcl_Interp *interp, Tcl_ObjectContext contextPtr, Tcl_CallFrame *framePtr, int *isFinished); MODULE_SCOPE ItclFoundation *ItclGetFoundation(Tcl_Interp *interp); MODULE_SCOPE Tcl_ObjCmdProc ItclClassCommandDispatcher; MODULE_SCOPE Tcl_Command Itcl_CmdAliasProc(Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *cmdName, ClientData clientData); MODULE_SCOPE Tcl_Var Itcl_VarAliasProc(Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *VarName, ClientData clientData); MODULE_SCOPE int ItclIsClass(Tcl_Interp *interp, Tcl_Command cmd); MODULE_SCOPE int ItclCheckCallMethod(ClientData clientData, Tcl_Interp *interp, Tcl_ObjectContext contextPtr, Tcl_CallFrame *framePtr, int *isFinished); MODULE_SCOPE int ItclAfterCallMethod(ClientData clientData, Tcl_Interp *interp, Tcl_ObjectContext contextPtr, Tcl_Namespace *nsPtr, int result); MODULE_SCOPE void ItclReportObjectUsage(Tcl_Interp *interp, ItclObject *contextIoPtr, Tcl_Namespace *callerNsPtr, Tcl_Namespace *contextNsPtr); MODULE_SCOPE void ItclGetInfoUsage(Tcl_Interp *interp, Tcl_Obj *objPtr, ItclObjectInfo *infoPtr); MODULE_SCOPE int ItclMapMethodNameProc(Tcl_Interp *interp, Tcl_Object oPtr, Tcl_Class *startClsPtr, Tcl_Obj *methodObj); MODULE_SCOPE int ItclCreateArgList(Tcl_Interp *interp, const char *str, int *argcPtr, int *maxArgcPtr, Tcl_Obj **usagePtr, ItclArgList **arglistPtrPtr, ItclMemberFunc *imPtr, const char *commandName); MODULE_SCOPE int ItclObjectCmd(ClientData clientData, Tcl_Interp *interp, Tcl_Object oPtr, Tcl_Class clsPtr, int objc, Tcl_Obj *const *objv); MODULE_SCOPE int ItclCreateObject (Tcl_Interp *interp, const char* name, ItclClass *iclsPtr, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE void ItclDeleteObjectVariablesNamespace(Tcl_Interp *interp, ItclObject *ioPtr); MODULE_SCOPE void ItclDeleteClassVariablesNamespace(Tcl_Interp *interp, ItclClass *iclsPtr); MODULE_SCOPE int ItclInfoInit(Tcl_Interp *interp); MODULE_SCOPE char * ItclTraceUnsetVar(ClientData clientData, Tcl_Interp *interp, const char *name1, const char *name2, int flags); struct Tcl_ResolvedVarInfo; MODULE_SCOPE int Itcl_ClassCmdResolver(Tcl_Interp *interp, const char* name, Tcl_Namespace *nsPtr, int flags, Tcl_Command *rPtr); MODULE_SCOPE int Itcl_ClassVarResolver(Tcl_Interp *interp, const char* name, Tcl_Namespace *nsPtr, int flags, Tcl_Var *rPtr); MODULE_SCOPE int Itcl_ClassCompiledVarResolver(Tcl_Interp *interp, const char* name, int length, Tcl_Namespace *nsPtr, struct Tcl_ResolvedVarInfo **rPtr); MODULE_SCOPE int Itcl_ClassCmdResolver2(Tcl_Interp *interp, const char* name, Tcl_Namespace *nsPtr, int flags, Tcl_Command *rPtr); MODULE_SCOPE int Itcl_ClassVarResolver2(Tcl_Interp *interp, const char* name, Tcl_Namespace *nsPtr, int flags, Tcl_Var *rPtr); MODULE_SCOPE int Itcl_ClassCompiledVarResolver2(Tcl_Interp *interp, const char* name, int length, Tcl_Namespace *nsPtr, struct Tcl_ResolvedVarInfo **rPtr); MODULE_SCOPE int ItclSetParserResolver(Tcl_Namespace *nsPtr); MODULE_SCOPE void ItclProcErrorProc(Tcl_Interp *interp, Tcl_Obj *procNameObj); MODULE_SCOPE int Itcl_CreateOption (Tcl_Interp *interp, ItclClass *iclsPtr, ItclOption *ioptPtr); MODULE_SCOPE int Itcl_CreateMethodVariable (Tcl_Interp *interp, ItclClass *iclsPtr, Tcl_Obj *name, Tcl_Obj *defaultPtr, |
︙ | ︙ | |||
751 752 753 754 755 756 757 | ItclMemberFunc **imPtrPtr); MODULE_SCOPE int Itcl_WidgetParseInit(Tcl_Interp *interp, ItclObjectInfo *infoPtr); MODULE_SCOPE void ItclDeleteObjectMetadata(ClientData clientData); MODULE_SCOPE void ItclDeleteClassMetadata(ClientData clientData); MODULE_SCOPE void ItclDeleteArgList(ItclArgList *arglistPtr); MODULE_SCOPE int Itcl_ClassOptionCmd(ClientData clientData, Tcl_Interp *interp, | | | | | | 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 | ItclMemberFunc **imPtrPtr); MODULE_SCOPE int Itcl_WidgetParseInit(Tcl_Interp *interp, ItclObjectInfo *infoPtr); MODULE_SCOPE void ItclDeleteObjectMetadata(ClientData clientData); MODULE_SCOPE void ItclDeleteClassMetadata(ClientData clientData); MODULE_SCOPE void ItclDeleteArgList(ItclArgList *arglistPtr); MODULE_SCOPE int Itcl_ClassOptionCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE int DelegatedOptionsInstall(Tcl_Interp *interp, ItclClass *iclsPtr); MODULE_SCOPE int Itcl_HandleDelegateOptionCmd(Tcl_Interp *interp, ItclObject *ioPtr, ItclClass *iclsPtr, ItclDelegatedOption **idoPtrPtr, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE int Itcl_HandleDelegateMethodCmd(Tcl_Interp *interp, ItclObject *ioPtr, ItclClass *iclsPtr, ItclDelegatedFunction **idmPtrPtr, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE int DelegateFunction(Tcl_Interp *interp, ItclObject *ioPtr, ItclClass *iclsPtr, Tcl_Obj *componentNamePtr, ItclDelegatedFunction *idmPtr); MODULE_SCOPE int ItclInitObjectMethodVariables(Tcl_Interp *interp, ItclObject *ioPtr, ItclClass *iclsPtr, const char *name); MODULE_SCOPE int InitTclOOFunctionPointers(Tcl_Interp *interp); MODULE_SCOPE ItclOption* ItclNewOption(Tcl_Interp *interp, ItclObject *ioPtr, ItclClass *iclsPtr, Tcl_Obj *namePtr, const char *resourceName, const char *className, char *init, ItclMemberCode *mCodePtr); MODULE_SCOPE int ItclParseOption(ItclObjectInfo *infoPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], ItclClass *iclsPtr, ItclObject *ioPtr, ItclOption **ioptPtrPtr); MODULE_SCOPE void ItclDestroyClassNamesp(ClientData cdata); MODULE_SCOPE int ExpandDelegateAs(Tcl_Interp *interp, ItclObject *ioPtr, ItclClass *iclsPtr, ItclDelegatedFunction *idmPtr, const char *funcName, Tcl_Obj *listPtr); MODULE_SCOPE int ItclCheckForInitializedComponents(Tcl_Interp *interp, ItclClass *iclsPtr, ItclObject *ioPtr); |
︙ | ︙ |
Changes to generic/itclMigrate2TclCore.h.
1 2 3 4 5 6 7 | #ifndef ITCL_USE_MODIFIED_TCL_H /* this is just to provide the definition. This struct is only used if * infoPtr->useOldResolvers == 0 which is not the default */ #define FRAME_HAS_RESOLVER 0x100 struct Tcl_Var; typedef Tcl_Command (Tcl_CmdAliasProc)(Tcl_Interp *interp, | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #ifndef ITCL_USE_MODIFIED_TCL_H /* this is just to provide the definition. This struct is only used if * infoPtr->useOldResolvers == 0 which is not the default */ #define FRAME_HAS_RESOLVER 0x100 struct Tcl_Var; typedef Tcl_Command (Tcl_CmdAliasProc)(Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *cmdName, ClientData clientData); typedef Tcl_Var (Tcl_VarAliasProc)(Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *varName, ClientData clientData); #ifndef _TCL_RESOLVE_DEFINED typedef struct Tcl_Resolve { Tcl_VarAliasProc *varProcPtr; Tcl_CmdAliasProc *cmdProcPtr; ClientData clientData; |
︙ | ︙ |
Changes to generic/itclResolve.c.
︙ | ︙ | |||
62 63 64 65 66 67 68 | * TCL_CONTINUE, and lookup continues via the normal Tcl name * resolution rules. * ------------------------------------------------------------------------ */ int Itcl_ClassCmdResolver( Tcl_Interp *interp, /* current interpreter */ | | | 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | * TCL_CONTINUE, and lookup continues via the normal Tcl name * resolution rules. * ------------------------------------------------------------------------ */ int Itcl_ClassCmdResolver( Tcl_Interp *interp, /* current interpreter */ const char* name, /* name of the command being accessed */ Tcl_Namespace *nsPtr, /* namespace performing the resolution */ int flags, /* TCL_LEAVE_ERR_MSG => leave error messages * in interp if anything goes wrong */ Tcl_Command *rPtr) /* returns: resolved command */ { Tcl_HashEntry *hPtr; Tcl_Obj *objPtr; |
︙ | ︙ | |||
240 241 242 243 244 245 246 | * procedure returns TCL_CONTINUE, and lookup continues via the normal * Tcl name resolution rules. * ------------------------------------------------------------------------ */ int Itcl_ClassVarResolver( Tcl_Interp *interp, /* current interpreter */ | | | 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 | * procedure returns TCL_CONTINUE, and lookup continues via the normal * Tcl name resolution rules. * ------------------------------------------------------------------------ */ int Itcl_ClassVarResolver( Tcl_Interp *interp, /* current interpreter */ const char* name, /* name of the variable being accessed */ Tcl_Namespace *nsPtr, /* namespace performing the resolution */ int flags, /* TCL_LEAVE_ERR_MSG => leave error messages * in interp if anything goes wrong */ Tcl_Var *rPtr) /* returns: resolved variable */ { ItclObjectInfo *infoPtr; ItclClass *iclsPtr; |
︙ | ︙ | |||
479 480 481 482 483 484 485 | * procedure returns TCL_CONTINUE, and lookup continues via the normal * Tcl name resolution rules. * ------------------------------------------------------------------------ */ int Itcl_ClassCompiledVarResolver( Tcl_Interp *interp, /* current interpreter */ | | | 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 | * procedure returns TCL_CONTINUE, and lookup continues via the normal * Tcl name resolution rules. * ------------------------------------------------------------------------ */ int Itcl_ClassCompiledVarResolver( Tcl_Interp *interp, /* current interpreter */ const char* name, /* name of the variable being accessed */ int length, /* number of characters in name */ Tcl_Namespace *nsPtr, /* namespace performing the resolution */ Tcl_ResolvedVarInfo **rPtr) /* returns: info that makes it possible to * resolve the variable at runtime */ { ItclClass *iclsPtr; ItclObjectInfo *infoPtr; |
︙ | ︙ |
Changes to generic/itclTclIntStubsFcn.h.
1 2 3 4 | /* these functions are Tcl internal stubs so make an Itcl_* wrapper */ MODULE_SCOPE void Itcl_GetVariableFullName (Tcl_Interp * interp, Tcl_Var variable, Tcl_Obj * objPtr); MODULE_SCOPE Tcl_Var Itcl_FindNamespaceVar (Tcl_Interp * interp, | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | /* these functions are Tcl internal stubs so make an Itcl_* wrapper */ MODULE_SCOPE void Itcl_GetVariableFullName (Tcl_Interp * interp, Tcl_Var variable, Tcl_Obj * objPtr); MODULE_SCOPE Tcl_Var Itcl_FindNamespaceVar (Tcl_Interp * interp, const char * name, Tcl_Namespace * contextNsPtr, int flags); MODULE_SCOPE void Itcl_SetNamespaceResolvers (Tcl_Namespace * namespacePtr, Tcl_ResolveCmdProc * cmdProc, Tcl_ResolveVarProc * varProc, Tcl_ResolveCompiledVarProc * compiledVarProc); #ifndef _TCL_PROC_DEFINED typedef struct Tcl_Proc_ *Tcl_Proc; #define _TCL_PROC_DEFINED 1 #endif #ifndef _TCL_RESOLVE_DEFINED struct Tcl_Resolve; #endif #define Tcl_GetOriginalCommand _Tcl_GetOriginalCommand #define Tcl_CreateProc _Tcl_CreateProc #define Tcl_ProcDeleteProc _Tcl_ProcDeleteProc #define Tcl_GetObjInterpProc _Tcl_GetObjInterpProc MODULE_SCOPE Tcl_Command _Tcl_GetOriginalCommand(Tcl_Command command); MODULE_SCOPE int _Tcl_CreateProc(Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *procName, Tcl_Obj *argsPtr, Tcl_Obj *bodyPtr, Tcl_Proc *procPtrPtr); MODULE_SCOPE void _Tcl_ProcDeleteProc(ClientData clientData); MODULE_SCOPE void *_Tcl_GetObjInterpProc(void); MODULE_SCOPE int Tcl_RenameCommand(Tcl_Interp *interp, const char *oldName, const char *newName); MODULE_SCOPE Tcl_HashTable *Itcl_GetNamespaceChildTable(Tcl_Namespace *nsPtr); MODULE_SCOPE Tcl_HashTable *Itcl_GetNamespaceCommandTable(Tcl_Namespace *nsPtr); MODULE_SCOPE int Itcl_InitRewriteEnsemble(Tcl_Interp *interp, int numRemoved, int numInserted, int objc, Tcl_Obj *const *objv); MODULE_SCOPE void Itcl_ResetRewriteEnsemble(Tcl_Interp *interp, int isRootEnsemble); |
Changes to win/itcl.rc.
1 2 3 4 5 | // // Version resource script. // #include <winver.h> | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | // // Version resource script. // #include <winver.h> #include <itclInt.h> // // build-up the name suffix that defines the type of build this is. // #if DEBUG && !UNCHECKED #define SUFFIX_DEBUG "g" #else |
︙ | ︙ |