📄 tcl8.0.h
字号:
typedef struct Tcl_HashTable { Tcl_HashEntry **buckets; /* Pointer to bucket array. Each * element points to first entry in * bucket's hash chain, or NULL. */ Tcl_HashEntry *staticBuckets[TCL_SMALL_HASH_TABLE]; /* Bucket array used for small tables * (to avoid mallocs and frees). */ int numBuckets; /* Total number of buckets allocated * at **bucketPtr. */ int numEntries; /* Total number of entries present * in table. */ int rebuildSize; /* Enlarge table when numEntries gets * to be this large. */ int downShift; /* Shift count used in hashing * function. Designed to use high- * order bits of randomized keys. */ int mask; /* Mask value used in hashing * function. */ int keyType; /* Type of keys used in this table. * It's either TCL_STRING_KEYS, * TCL_ONE_WORD_KEYS, or an integer * giving the number of ints that * is the size of the key. */ Tcl_HashEntry *(*findProc) _ANSI_ARGS_((struct Tcl_HashTable *tablePtr, CONST char *key)); Tcl_HashEntry *(*createProc) _ANSI_ARGS_((struct Tcl_HashTable *tablePtr, CONST char *key, int *newPtr));} Tcl_HashTable;/* * Structure definition for information used to keep track of searches * through hash tables: */typedef struct Tcl_HashSearch { Tcl_HashTable *tablePtr; /* Table being searched. */ int nextIndex; /* Index of next bucket to be * enumerated after present one. */ Tcl_HashEntry *nextEntryPtr; /* Next entry to be enumerated in the * the current bucket. */} Tcl_HashSearch;/* * Acceptable key types for hash tables: */#define TCL_STRING_KEYS 0#define TCL_ONE_WORD_KEYS 1/* * Macros for clients to use to access fields of hash entries: */#define Tcl_GetHashValue(h) ((h)->clientData)#define Tcl_SetHashValue(h, value) ((h)->clientData = (ClientData) (value))#define Tcl_GetHashKey(tablePtr, h) \ ((char *) (((tablePtr)->keyType == TCL_ONE_WORD_KEYS) ? (h)->key.oneWordValue \ : (h)->key.string))/* * Macros to use for clients to use to invoke find and create procedures * for hash tables: */#define Tcl_FindHashEntry(tablePtr, key) \ (*((tablePtr)->findProc))(tablePtr, key)#define Tcl_CreateHashEntry(tablePtr, key, newPtr) \ (*((tablePtr)->createProc))(tablePtr, key, newPtr)/* * Flag values to pass to Tcl_DoOneEvent to disable searches * for some kinds of events: */#define TCL_DONT_WAIT (1<<1)#define TCL_WINDOW_EVENTS (1<<2)#define TCL_FILE_EVENTS (1<<3)#define TCL_TIMER_EVENTS (1<<4)#define TCL_IDLE_EVENTS (1<<5) /* WAS 0x10 ???? */#define TCL_ALL_EVENTS (~TCL_DONT_WAIT)/* * The following structure defines a generic event for the Tcl event * system. These are the things that are queued in calls to Tcl_QueueEvent * and serviced later by Tcl_DoOneEvent. There can be many different * kinds of events with different fields, corresponding to window events, * timer events, etc. The structure for a particular event consists of * a Tcl_Event header followed by additional information specific to that * event. */struct Tcl_Event { Tcl_EventProc *proc; /* Procedure to call to service this event. */ struct Tcl_Event *nextPtr; /* Next in list of pending events, or NULL. */};/* * Positions to pass to Tcl_QueueEvent: */typedef enum { TCL_QUEUE_TAIL, TCL_QUEUE_HEAD, TCL_QUEUE_MARK} Tcl_QueuePosition;/* * Values to pass to Tcl_SetServiceMode to specify the behavior of notifier * event routines. */#define TCL_SERVICE_NONE 0#define TCL_SERVICE_ALL 1/* * The following structure keeps is used to hold a time value, either as * an absolute time (the number of seconds from the epoch) or as an * elapsed time. On Unix systems the epoch is Midnight Jan 1, 1970 GMT. * On Macintosh systems the epoch is Midnight Jan 1, 1904 GMT. */typedef struct Tcl_Time { long sec; /* Seconds. */ long usec; /* Microseconds. */} Tcl_Time;/* * Bits to pass to Tcl_CreateFileHandler and Tcl_CreateChannelHandler * to indicate what sorts of events are of interest: */#define TCL_READABLE (1<<1)#define TCL_WRITABLE (1<<2)#define TCL_EXCEPTION (1<<3)/* * Flag values to pass to Tcl_OpenCommandChannel to indicate the * disposition of the stdio handles. TCL_STDIN, TCL_STDOUT, TCL_STDERR, * are also used in Tcl_GetStdChannel. */#define TCL_STDIN (1<<1) #define TCL_STDOUT (1<<2)#define TCL_STDERR (1<<3)#define TCL_ENFORCE_MODE (1<<4)/* * Typedefs for the various operations in a channel type: */typedef int (Tcl_DriverBlockModeProc) _ANSI_ARGS_(( ClientData instanceData, int mode));typedef int (Tcl_DriverCloseProc) _ANSI_ARGS_((ClientData instanceData, Tcl_Interp *interp));typedef int (Tcl_DriverInputProc) _ANSI_ARGS_((ClientData instanceData, char *buf, int toRead, int *errorCodePtr));typedef int (Tcl_DriverOutputProc) _ANSI_ARGS_((ClientData instanceData, char *buf, int toWrite, int *errorCodePtr));typedef int (Tcl_DriverSeekProc) _ANSI_ARGS_((ClientData instanceData, long offset, int mode, int *errorCodePtr));typedef int (Tcl_DriverSetOptionProc) _ANSI_ARGS_(( ClientData instanceData, Tcl_Interp *interp, char *optionName, char *value));typedef int (Tcl_DriverGetOptionProc) _ANSI_ARGS_(( ClientData instanceData, Tcl_Interp *interp, char *optionName, Tcl_DString *dsPtr));typedef void (Tcl_DriverWatchProc) _ANSI_ARGS_(( ClientData instanceData, int mask));typedef int (Tcl_DriverGetHandleProc) _ANSI_ARGS_(( ClientData instanceData, int direction, ClientData *handlePtr));/* * Enum for different end of line translation and recognition modes. */typedef enum Tcl_EolTranslation { TCL_TRANSLATE_AUTO, /* Eol == \r, \n and \r\n. */ TCL_TRANSLATE_CR, /* Eol == \r. */ TCL_TRANSLATE_LF, /* Eol == \n. */ TCL_TRANSLATE_CRLF /* Eol == \r\n. */} Tcl_EolTranslation;/* * struct Tcl_ChannelType: * * One such structure exists for each type (kind) of channel. * It collects together in one place all the functions that are * part of the specific channel type. */typedef struct Tcl_ChannelType { char *typeName; /* The name of the channel type in Tcl * commands. This storage is owned by * channel type. */ Tcl_DriverBlockModeProc *blockModeProc; /* Set blocking mode for the * raw channel. May be NULL. */ Tcl_DriverCloseProc *closeProc; /* Procedure to call to close * the channel. */ Tcl_DriverInputProc *inputProc; /* Procedure to call for input * on channel. */ Tcl_DriverOutputProc *outputProc; /* Procedure to call for output * on channel. */ Tcl_DriverSeekProc *seekProc; /* Procedure to call to seek * on the channel. May be NULL. */ Tcl_DriverSetOptionProc *setOptionProc; /* Set an option on a channel. */ Tcl_DriverGetOptionProc *getOptionProc; /* Get an option from a channel. */ Tcl_DriverWatchProc *watchProc; /* Set up the notifier to watch * for events on this channel. */ Tcl_DriverGetHandleProc *getHandleProc; /* Get an OS handle from the channel * or NULL if not supported. */} Tcl_ChannelType;/* * The following flags determine whether the blockModeProc above should * set the channel into blocking or nonblocking mode. They are passed * as arguments to the blockModeProc procedure in the above structure. */#define TCL_MODE_BLOCKING 0 /* Put channel into blocking mode. */#define TCL_MODE_NONBLOCKING 1 /* Put channel into nonblocking * mode. *//* * Enum for different types of file paths. */typedef enum Tcl_PathType { TCL_PATH_ABSOLUTE, TCL_PATH_RELATIVE, TCL_PATH_VOLUME_RELATIVE} Tcl_PathType;/* * Exported Tcl procedures: */EXTERN void Tcl_AddErrorInfo _ANSI_ARGS_((Tcl_Interp *interp, char *message));EXTERN void Tcl_AddObjErrorInfo _ANSI_ARGS_((Tcl_Interp *interp, char *message, int length));EXTERN void Tcl_AllowExceptions _ANSI_ARGS_((Tcl_Interp *interp));EXTERN int Tcl_AppendAllObjTypes _ANSI_ARGS_(( Tcl_Interp *interp, Tcl_Obj *objPtr));EXTERN void Tcl_AppendElement _ANSI_ARGS_((Tcl_Interp *interp, char *string));EXTERN void Tcl_AppendResult _ANSI_ARGS_( TCL_VARARGS(Tcl_Interp *,interp));EXTERN void Tcl_AppendToObj _ANSI_ARGS_((Tcl_Obj *objPtr, char *bytes, int length));EXTERN void Tcl_AppendStringsToObj _ANSI_ARGS_( TCL_VARARGS(Tcl_Obj *,interp));EXTERN int Tcl_AppInit _ANSI_ARGS_((Tcl_Interp *interp));EXTERN Tcl_AsyncHandler Tcl_AsyncCreate _ANSI_ARGS_((Tcl_AsyncProc *proc, ClientData clientData));EXTERN void Tcl_AsyncDelete _ANSI_ARGS_((Tcl_AsyncHandler async));EXTERN int Tcl_AsyncInvoke _ANSI_ARGS_((Tcl_Interp *interp, int code));EXTERN void Tcl_AsyncMark _ANSI_ARGS_((Tcl_AsyncHandler async));EXTERN int Tcl_AsyncReady _ANSI_ARGS_((void));EXTERN void Tcl_BackgroundError _ANSI_ARGS_((Tcl_Interp *interp));EXTERN char Tcl_Backslash _ANSI_ARGS_((CONST char *src, int *readPtr));EXTERN int Tcl_BadChannelOption _ANSI_ARGS_((Tcl_Interp *interp, char *optionName, char *optionList));EXTERN void Tcl_CallWhenDeleted _ANSI_ARGS_((Tcl_Interp *interp, Tcl_InterpDeleteProc *proc, ClientData clientData));EXTERN void Tcl_CancelIdleCall _ANSI_ARGS_((Tcl_IdleProc *idleProc, ClientData clientData));#define Tcl_Ckalloc Tcl_Alloc#define Tcl_Ckfree Tcl_Free#define Tcl_Ckrealloc Tcl_ReallocEXTERN int Tcl_Close _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Channel chan));EXTERN int Tcl_CommandComplete _ANSI_ARGS_((char *cmd));EXTERN char * Tcl_Concat _ANSI_ARGS_((int argc, char **argv));EXTERN Tcl_Obj * Tcl_ConcatObj _ANSI_ARGS_((int objc, Tcl_Obj *CONST objv[]));EXTERN int Tcl_ConvertCountedElement _ANSI_ARGS_((CONST char *src, int length, char *dst, int flags));EXTERN int Tcl_ConvertElement _ANSI_ARGS_((CONST char *src, char *dst, int flags));EXTERN int Tcl_ConvertToType _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_ObjType *typePtr));EXTERN int Tcl_CreateAlias _ANSI_ARGS_((Tcl_Interp *slave, char *slaveCmd, Tcl_Interp *target, char *targetCmd, int argc, char **argv));EXTERN int Tcl_CreateAliasObj _ANSI_ARGS_((Tcl_Interp *slave, char *slaveCmd, Tcl_Interp *target, char *targetCmd, int objc, Tcl_Obj *CONST objv[]));EXTERN Tcl_Channel Tcl_CreateChannel _ANSI_ARGS_(( Tcl_ChannelType *typePtr, char *chanName, ClientData instanceData, int mask));EXTERN void Tcl_CreateChannelHandler _ANSI_ARGS_(( Tcl_Channel chan, int mask, Tcl_ChannelProc *proc, ClientData clientData));EXTERN void Tcl_CreateCloseHandler _ANSI_ARGS_(( Tcl_Channel chan, Tcl_CloseProc *proc, ClientData clientData));EXTERN Tcl_Command Tcl_CreateCommand _ANSI_ARGS_((Tcl_Interp *interp, char *cmdName, Tcl_CmdProc *proc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc));EXTERN void Tcl_CreateEventSource _ANSI_ARGS_(( Tcl_EventSetupProc *setupProc, Tcl_EventCheckProc *checkProc, ClientData clientData));EXTERN void Tcl_CreateExitHandler _ANSI_ARGS_((Tcl_ExitProc *proc, ClientData clientData));EXTERN void Tcl_CreateFileHandler _ANSI_ARGS_(( int fd, int mask, Tcl_FileProc *proc, ClientData clientData));EXTERN Tcl_Interp * Tcl_CreateInterp _ANSI_ARGS_((void));EXTERN void Tcl_CreateMathFunc _ANSI_ARGS_((Tcl_Interp *interp, char *name, int numArgs, Tcl_ValueType *argTypes, Tcl_MathProc *proc, ClientData clientData));EXTERN Tcl_Command Tcl_CreateObjCommand _ANSI_ARGS_(( Tcl_Interp *interp, char *cmdName, Tcl_ObjCmdProc *proc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc));EXTERN Tcl_Interp * Tcl_CreateSlave _ANSI_ARGS_((Tcl_Interp *interp, char *slaveName, int isSafe));EXTERN Tcl_TimerToken Tcl_CreateTimerHandler _ANSI_ARGS_((int milliseconds, Tcl_TimerProc *proc, ClientData clientData));EXTERN Tcl_Trace Tcl_CreateTrace _ANSI_ARGS_((Tcl_Interp *interp, int level, Tcl_CmdTraceProc *proc, ClientData clientData));EXTERN char * Tcl_DbCkalloc _ANSI_ARGS_((unsigned int size, char *file, int line));EXTERN int Tcl_DbCkfree _ANSI_ARGS_((char *ptr, char *file, int line));EXTERN char * Tcl_DbCkrealloc _ANSI_ARGS_((char *ptr, unsigned int size, char *file, int line));EXTERN void Tcl_DbDecrRefCount _ANSI_ARGS_((Tcl_Obj *objPtr, char *file, int line));EXTERN void Tcl_DbIncrRefCount _ANSI_ARGS_((Tcl_Obj *objPtr, char *file, int line));EXTERN int Tcl_DbIsShared _ANSI_ARGS_((Tcl_Obj *objPtr, char *file, int line));EXTERN Tcl_Obj * Tcl_DbNewBooleanObj _ANSI_ARGS_((int boolValue, char *file, int line));EXTERN Tcl_Obj * Tcl_DbNewDoubleObj _ANSI_ARGS_((double doubleValue, char *file, int line));EXTERN Tcl_Obj * Tcl_DbNewListObj _ANSI_ARGS_((int objc, Tcl_Obj *CONST objv[], char *file, int line));EXTERN Tcl_Obj * Tcl_DbNewObj _ANSI_ARGS_((char *file, int line));EXTERN Tcl_Obj * Tcl_DbNewStringObj _ANSI_ARGS_((char *bytes, int length, char *file, int line));EXTERN void Tcl_DeleteAssocData _ANSI_ARGS_((Tcl_Interp *interp, char *name));EXTERN int Tcl_DeleteCommand _ANSI_ARGS_((Tcl_Interp *interp, char *cmdName));EXTERN int Tcl_DeleteCommandFromToken _ANSI_ARGS_(( Tcl_Interp *interp, Tcl_Command command));EXTERN void Tcl_DeleteChannelHandler _ANSI_ARGS_(( Tcl_Channel chan, Tcl_ChannelProc *proc, ClientData clientData));EXTERN void Tcl_DeleteCloseHandler _ANSI_ARGS_(( Tcl_Channel chan, Tcl_CloseProc *proc, ClientData clientData));EXTERN void Tcl_DeleteEvents _ANSI_ARGS_(( Tcl_EventDeleteProc *proc, ClientData clientData));EXTERN void Tcl_DeleteEventSource _ANSI_ARGS_(( Tcl_EventSetupProc *setupProc, Tcl_EventCheckProc *checkProc, ClientData clientData));EXTERN void Tcl_DeleteExitHandler _ANSI_ARGS_((Tcl_ExitProc *proc, ClientData clientData));EXTERN void Tcl_DeleteFileHandler _ANSI_ARGS_((int fd));EXTERN void Tcl_DeleteHashEntry _ANSI_ARGS_(( Tcl_HashEntry *entryPtr));EXTERN void Tcl_DeleteHashTable _ANSI_ARGS_(( Tcl_HashTable *tablePtr));EXTERN void Tcl_DeleteInterp _ANSI_ARGS_((Tcl_Interp *interp));EXTERN void Tcl_DeleteTimerHandler _ANSI_ARGS_(( Tcl_TimerToken token));EXTERN void Tcl_DeleteTrace _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Trace trace));EXTERN void Tcl_DetachPids _ANSI_ARGS_((int numPids, Tcl_Pid *pidPtr));EXTERN void Tcl_DontCallWhenDeleted _ANSI_ARGS_((
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -