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
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);
13
#ifndef _TCL_RESOLVE_DEFINED
14
typedef struct Tcl_Resolve {
15
Tcl_VarAliasProc *varProcPtr;
16
Tcl_CmdAliasProc *cmdProcPtr;
17
ClientData clientData;
19
#define _TCL_RESOLVE_DEFINED 1
24
struct Tcl_ResolvedVarInfo;
26
typedef Tcl_Var (Tcl_ResolveRuntimeVarProc)(Tcl_Interp *interp,
27
struct Tcl_ResolvedVarInfo *vinfoPtr);
29
typedef void (Tcl_ResolveVarDeleteProc)(struct Tcl_ResolvedVarInfo *vinfoPtr);
32
* The following structure encapsulates the routines needed to resolve a
33
* variable reference at runtime. Any variable specific state will typically
34
* be appended to this structure.
37
typedef struct Tcl_ResolvedVarInfo {
38
Tcl_ResolveRuntimeVarProc *fetchProc;
39
Tcl_ResolveVarDeleteProc *deleteProc;
40
} Tcl_ResolvedVarInfo;
42
typedef int (Tcl_ResolveCompiledVarProc) (Tcl_Interp *interp,
43
const char *name, int length, Tcl_Namespace *context,
44
Tcl_ResolvedVarInfo **rPtr);
46
typedef int (Tcl_ResolveVarProc) (Tcl_Interp *interp, const char *name,
47
Tcl_Namespace *context, int flags, Tcl_Var *rPtr);
49
typedef int (Tcl_ResolveCmdProc) (Tcl_Interp *interp, const char *name,
50
Tcl_Namespace *context, int flags, Tcl_Command *rPtr);
52
typedef struct Tcl_ResolverInfo {
53
Tcl_ResolveCmdProc *cmdResProc;
54
/* Procedure handling command name
56
Tcl_ResolveVarProc *varResProc;
57
/* Procedure handling variable name resolution
58
* for variables that can only be handled at
60
Tcl_ResolveCompiledVarProc *compiledVarResProc;
61
/* Procedure handling variable name resolution
67
/* here come the definitions for code which should be migrated to Tcl core */
68
/* these functions DO NOT exist and are not published */
69
#ifndef _TCL_PROC_DEFINED
70
typedef struct Tcl_Proc_ *Tcl_Proc;
71
#define _TCL_PROC_DEFINED 1
74
#define Tcl_SetProcCmd _Tcl_SetProcCmd
76
MODULE_SCOPE Tcl_Var Tcl_NewNamespaceVar(Tcl_Interp *interp, Tcl_Namespace *nsPtr,
78
MODULE_SCOPE void Itcl_PreserveVar(Tcl_Var var);
79
MODULE_SCOPE void Itcl_ReleaseVar(Tcl_Var var);
80
MODULE_SCOPE int Itcl_IsCallFrameArgument(Tcl_Interp *interp, const char *name);
81
MODULE_SCOPE int Itcl_GetCallVarFrameObjc(Tcl_Interp *interp);
82
MODULE_SCOPE int Itcl_IsVarLink(Tcl_Var var);
83
MODULE_SCOPE int Itcl_IsCallFrameLinkVar(Tcl_Interp *interp, const char *name);
84
MODULE_SCOPE Tcl_Obj * const * Itcl_GetCallVarFrameObjv(Tcl_Interp *interp);
85
#define Tcl_SetNamespaceResolver _Tcl_SetNamespaceResolver
86
MODULE_SCOPE int _Tcl_SetNamespaceResolver(Tcl_Namespace *nsPtr,
87
struct Tcl_Resolve *resolvePtr);