itclMigrate2TclCore.h 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #ifndef ITCL_USE_MODIFIED_TCL_H
  2. /* this is just to provide the definition. This struct is only used if
  3. * infoPtr->useOldResolvers == 0 which is not the default
  4. */
  5. #define FRAME_HAS_RESOLVER 0x100
  6. typedef Tcl_Command (Tcl_CmdAliasProc)(Tcl_Interp *interp,
  7. Tcl_Namespace *nsPtr, const char *cmdName,
  8. ClientData clientData);
  9. typedef Tcl_Var (Tcl_VarAliasProc)(Tcl_Interp *interp,
  10. Tcl_Namespace *nsPtr, const char *varName,
  11. ClientData clientData);
  12. #ifndef _TCL_RESOLVE_DEFINED
  13. typedef struct Tcl_Resolve {
  14. Tcl_VarAliasProc *varProcPtr;
  15. Tcl_CmdAliasProc *cmdProcPtr;
  16. ClientData clientData;
  17. } Tcl_Resolve;
  18. #define _TCL_RESOLVE_DEFINED 1
  19. #endif
  20. #endif
  21. #ifndef _TCLINT
  22. struct Tcl_ResolvedVarInfo;
  23. typedef Tcl_Var (Tcl_ResolveRuntimeVarProc)(Tcl_Interp *interp,
  24. struct Tcl_ResolvedVarInfo *vinfoPtr);
  25. typedef void (Tcl_ResolveVarDeleteProc)(struct Tcl_ResolvedVarInfo *vinfoPtr);
  26. /*
  27. * The following structure encapsulates the routines needed to resolve a
  28. * variable reference at runtime. Any variable specific state will typically
  29. * be appended to this structure.
  30. */
  31. typedef struct Tcl_ResolvedVarInfo {
  32. Tcl_ResolveRuntimeVarProc *fetchProc;
  33. Tcl_ResolveVarDeleteProc *deleteProc;
  34. } Tcl_ResolvedVarInfo;
  35. typedef int (Tcl_ResolveCompiledVarProc) (Tcl_Interp *interp,
  36. const char *name, int length, Tcl_Namespace *context,
  37. Tcl_ResolvedVarInfo **rPtr);
  38. typedef int (Tcl_ResolveVarProc) (Tcl_Interp *interp, const char *name,
  39. Tcl_Namespace *context, int flags, Tcl_Var *rPtr);
  40. typedef int (Tcl_ResolveCmdProc) (Tcl_Interp *interp, const char *name,
  41. Tcl_Namespace *context, int flags, Tcl_Command *rPtr);
  42. typedef struct Tcl_ResolverInfo {
  43. Tcl_ResolveCmdProc *cmdResProc;
  44. /* Procedure handling command name
  45. * resolution. */
  46. Tcl_ResolveVarProc *varResProc;
  47. /* Procedure handling variable name resolution
  48. * for variables that can only be handled at
  49. * runtime. */
  50. Tcl_ResolveCompiledVarProc *compiledVarResProc;
  51. /* Procedure handling variable name resolution
  52. * at compile time. */
  53. } Tcl_ResolverInfo;
  54. #endif
  55. /* here come the definitions for code which should be migrated to Tcl core */
  56. /* these functions DO NOT exist and are not published */
  57. #ifndef _TCL_PROC_DEFINED
  58. typedef struct Tcl_Proc_ *Tcl_Proc;
  59. #define _TCL_PROC_DEFINED 1
  60. #endif
  61. MODULE_SCOPE Tcl_Var Tcl_NewNamespaceVar(Tcl_Interp *interp, Tcl_Namespace *nsPtr,
  62. const char *varName);
  63. MODULE_SCOPE void Itcl_PreserveVar(Tcl_Var var);
  64. MODULE_SCOPE void Itcl_ReleaseVar(Tcl_Var var);
  65. MODULE_SCOPE int Itcl_IsCallFrameArgument(Tcl_Interp *interp, const char *name);
  66. MODULE_SCOPE int Itcl_GetCallVarFrameObjc(Tcl_Interp *interp);
  67. MODULE_SCOPE Tcl_Obj * const * Itcl_GetCallVarFrameObjv(Tcl_Interp *interp);
  68. #define Tcl_SetNamespaceResolver _Tcl_SetNamespaceResolver
  69. MODULE_SCOPE int _Tcl_SetNamespaceResolver(Tcl_Namespace *nsPtr,
  70. struct Tcl_Resolve *resolvePtr);