Annotation of micropolis/src/tcl/tcl.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * tcl.h --
        !             3:  *
        !             4:  *     This header file describes the externally-visible facilities
        !             5:  *     of the Tcl interpreter.
        !             6:  *
        !             7:  * Copyright 1987-1991 Regents of the University of California
        !             8:  * Permission to use, copy, modify, and distribute this
        !             9:  * software and its documentation for any purpose and without
        !            10:  * fee is hereby granted, provided that the above copyright
        !            11:  * notice appear in all copies.  The University of California
        !            12:  * makes no representations about the suitability of this
        !            13:  * software for any purpose.  It is provided "as is" without
        !            14:  * express or implied warranty.
        !            15:  *
        !            16:  * $Header: /user6/ouster/tcl/RCS/tcl.h,v 1.84 92/08/07 08:21:34 ouster Exp $ SPRITE (Berkeley)
        !            17:  */
        !            18: 
        !            19: #ifndef _TCL
        !            20: #define _TCL
        !            21: 
        !            22: #define TCL_VERSION "6.4"
        !            23: 
        !            24: /*
        !            25:  * Definitions that allow this header file to be used either with or
        !            26:  * without ANSI C features like function prototypes.
        !            27:  */
        !            28: 
        !            29: #undef _ANSI_ARGS_
        !            30: #undef const
        !            31: #if ((defined(__STDC__) || defined(SABER)) && !defined(NO_PROTOTYPE)) || defined(__cplusplus)
        !            32: #   define _ANSI_ARGS_(x)      x
        !            33: #   define CONST const
        !            34: #   ifdef __cplusplus
        !            35: #       define VARARGS (...)
        !            36: #   else
        !            37: #       define VARARGS ()
        !            38: #   endif
        !            39: #else
        !            40: #   define _ANSI_ARGS_(x)      ()
        !            41: #   define CONST
        !            42: #endif
        !            43: 
        !            44: #ifdef __cplusplus
        !            45: #   define EXTERN extern "C"
        !            46: #else
        !            47: #   define EXTERN extern
        !            48: #endif
        !            49: 
        !            50: /*
        !            51:  * Miscellaneous declarations (to allow Tcl to be used stand-alone,
        !            52:  * without the rest of Sprite).
        !            53:  */
        !            54: 
        !            55: #ifndef NULL
        !            56: #define NULL 0
        !            57: #endif
        !            58: 
        !            59: #ifndef _CLIENTDATA
        !            60: typedef int *ClientData;
        !            61: #define _CLIENTDATA
        !            62: #endif
        !            63: 
        !            64: /*
        !            65:  * Data structures defined opaquely in this module.  The definitions
        !            66:  * below just provide dummy types.  A few fields are made visible in
        !            67:  * Tcl_Interp structures, namely those for returning string values.
        !            68:  * Note:  any change to the Tcl_Interp definition below must be mirrored
        !            69:  * in the "real" definition in tclInt.h.
        !            70:  */
        !            71: 
        !            72: typedef struct Tcl_Interp{
        !            73:     char *result;              /* Points to result string returned by last
        !            74:                                 * command. */
        !            75:     void (*freeProc) _ANSI_ARGS_((char *blockPtr));
        !            76:                                /* Zero means result is statically allocated.
        !            77:                                 * If non-zero, gives address of procedure
        !            78:                                 * to invoke to free the result.  Must be
        !            79:                                 * freed by Tcl_Eval before executing next
        !            80:                                 * command. */
        !            81:     int errorLine;             /* When TCL_ERROR is returned, this gives
        !            82:                                 * the line number within the command where
        !            83:                                 * the error occurred (1 means first line). */
        !            84: } Tcl_Interp;
        !            85: 
        !            86: typedef int *Tcl_Trace;
        !            87: typedef int *Tcl_CmdBuf;
        !            88: 
        !            89: /*
        !            90:  * When a TCL command returns, the string pointer interp->result points to
        !            91:  * a string containing return information from the command.  In addition,
        !            92:  * the command procedure returns an integer value, which is one of the
        !            93:  * following:
        !            94:  *
        !            95:  * TCL_OK              Command completed normally;  interp->result contains
        !            96:  *                     the command's result.
        !            97:  * TCL_ERROR           The command couldn't be completed successfully;
        !            98:  *                     interp->result describes what went wrong.
        !            99:  * TCL_RETURN          The command requests that the current procedure
        !           100:  *                     return;  interp->result contains the procedure's
        !           101:  *                     return value.
        !           102:  * TCL_BREAK           The command requests that the innermost loop
        !           103:  *                     be exited;  interp->result is meaningless.
        !           104:  * TCL_CONTINUE                Go on to the next iteration of the current loop;
        !           105:  *                     interp->result is meaninless.
        !           106:  */
        !           107: 
        !           108: #define TCL_OK         0
        !           109: #define TCL_ERROR      1
        !           110: #define TCL_RETURN     2
        !           111: #define TCL_BREAK      3
        !           112: #define TCL_CONTINUE   4
        !           113: 
        !           114: #define TCL_RESULT_SIZE 199
        !           115: 
        !           116: /*
        !           117:  * Procedure types defined by Tcl:
        !           118:  */
        !           119: 
        !           120: typedef void (Tcl_CmdDeleteProc) _ANSI_ARGS_((ClientData clientData));
        !           121: typedef int (Tcl_CmdProc) _ANSI_ARGS_((ClientData clientData,
        !           122:        Tcl_Interp *interp, int argc, char *argv[]));
        !           123: typedef void (Tcl_CmdTraceProc) _ANSI_ARGS_((ClientData clientData,
        !           124:        Tcl_Interp *interp, int level, char *command, Tcl_CmdProc *proc,
        !           125:        ClientData cmdClientData, int argc, char *argv[]));
        !           126: typedef void (Tcl_FreeProc) _ANSI_ARGS_((char *blockPtr));
        !           127: typedef char *(Tcl_VarTraceProc) _ANSI_ARGS_((ClientData clientData,
        !           128:        Tcl_Interp *interp, char *name1, char *name2, int flags));
        !           129: 
        !           130: /*
        !           131:  * Flag values passed to Tcl_Eval (see the man page for details;  also
        !           132:  * see tclInt.h for additional flags that are only used internally by
        !           133:  * Tcl):
        !           134:  */
        !           135: 
        !           136: #define TCL_BRACKET_TERM       1
        !           137: 
        !           138: /*
        !           139:  * Flag that may be passed to Tcl_ConvertElement to force it not to
        !           140:  * output braces (careful!  if you change this flag be sure to change
        !           141:  * the definitions at the front of tclUtil.c).
        !           142:  */
        !           143: 
        !           144: #define TCL_DONT_USE_BRACES    1
        !           145: 
        !           146: /*
        !           147:  * Flag value passed to Tcl_RecordAndEval to request no evaluation
        !           148:  * (record only).
        !           149:  */
        !           150: 
        !           151: #define TCL_NO_EVAL            -1
        !           152: 
        !           153: /*
        !           154:  * Specil freeProc values that may be passed to Tcl_SetResult (see
        !           155:  * the man page for details):
        !           156:  */
        !           157: 
        !           158: #define TCL_VOLATILE   ((Tcl_FreeProc *) -1)
        !           159: #define TCL_STATIC     ((Tcl_FreeProc *) 0)
        !           160: #define TCL_DYNAMIC    ((Tcl_FreeProc *) free)
        !           161: 
        !           162: /*
        !           163:  * Flag values passed to variable-related procedures.
        !           164:  */
        !           165: 
        !           166: #define TCL_GLOBAL_ONLY                1
        !           167: #define TCL_APPEND_VALUE       2
        !           168: #define TCL_LIST_ELEMENT       4
        !           169: #define TCL_NO_SPACE           8
        !           170: #define TCL_TRACE_READS                0x10
        !           171: #define TCL_TRACE_WRITES       0x20
        !           172: #define TCL_TRACE_UNSETS       0x40
        !           173: #define TCL_TRACE_DESTROYED    0x80
        !           174: #define TCL_INTERP_DESTROYED   0x100
        !           175: #define TCL_LEAVE_ERR_MSG      0x200
        !           176: 
        !           177: /*
        !           178:  * Additional flag passed back to variable watchers.  This flag must
        !           179:  * not overlap any of the TCL_TRACE_* flags defined above or the
        !           180:  * TRACE_* flags defined in tclInt.h.
        !           181:  */
        !           182: 
        !           183: #define TCL_VARIABLE_UNDEFINED 8
        !           184: 
        !           185: /*
        !           186:  * The following declarations either map ckalloc and ckfree to
        !           187:  * malloc and free, or they map them to procedures with all sorts
        !           188:  * of debugging hooks defined in tclCkalloc.c.
        !           189:  */
        !           190: 
        !           191: #ifdef TCL_MEM_DEBUG
        !           192: 
        !           193: EXTERN char *          Tcl_DbCkalloc _ANSI_ARGS_((unsigned int size,
        !           194:                            char *file, int line));
        !           195: EXTERN int             Tcl_DbCkfree _ANSI_ARGS_((char *ptr,
        !           196:                            char *file, int line));
        !           197: #  define ckalloc(x) Tcl_DbCkalloc(x, __FILE__, __LINE__)
        !           198: #  define ckfree(x)  Tcl_DbCkfree(x, __FILE__, __LINE__)
        !           199: 
        !           200: #else
        !           201: 
        !           202: #  define ckalloc(x) malloc(x)
        !           203: #  define ckfree(x)  free(x)
        !           204: 
        !           205: #endif /* TCL_MEM_DEBUG */
        !           206: 
        !           207: /*
        !           208:  * Macro to free up result of interpreter.
        !           209:  */
        !           210: 
        !           211: #define Tcl_FreeResult(interp)                                 \
        !           212:     if ((interp)->freeProc != 0) {                             \
        !           213:        if ((interp)->freeProc == (Tcl_FreeProc *) free) {      \
        !           214:            ckfree((interp)->result);                           \
        !           215:        } else {                                                \
        !           216:            (*(interp)->freeProc)((interp)->result);            \
        !           217:        }                                                       \
        !           218:        (interp)->freeProc = 0;                                 \
        !           219:     }
        !           220: 
        !           221: /*
        !           222:  * Exported Tcl procedures:
        !           223:  */
        !           224: 
        !           225: EXTERN void            Tcl_AppendElement _ANSI_ARGS_((Tcl_Interp *interp,
        !           226:                            char *string, int noSep));
        !           227: EXTERN void            Tcl_AppendResult _ANSI_ARGS_((Tcl_Interp *interp, ...));
        !           228: EXTERN char *          Tcl_AssembleCmd _ANSI_ARGS_((Tcl_CmdBuf buffer,
        !           229:                            char *string));
        !           230: EXTERN void            Tcl_AddErrorInfo _ANSI_ARGS_((Tcl_Interp *interp,
        !           231:                            char *message));
        !           232: EXTERN char            Tcl_Backslash _ANSI_ARGS_((char *src,
        !           233:                            int *readPtr));
        !           234: EXTERN char *          Tcl_Concat _ANSI_ARGS_((int argc, char **argv));
        !           235: EXTERN int             Tcl_ConvertElement _ANSI_ARGS_((char *src,
        !           236:                            char *dst, int flags));
        !           237: EXTERN Tcl_CmdBuf      Tcl_CreateCmdBuf _ANSI_ARGS_((void));
        !           238: EXTERN void            Tcl_CreateCommand _ANSI_ARGS_((Tcl_Interp *interp,
        !           239:                            char *cmdName, Tcl_CmdProc *proc,
        !           240:                            ClientData clientData,
        !           241:                            Tcl_CmdDeleteProc *deleteProc));
        !           242: EXTERN Tcl_Interp *    Tcl_CreateInterp _ANSI_ARGS_((void));
        !           243: EXTERN int             Tcl_CreatePipeline _ANSI_ARGS_((Tcl_Interp *interp,
        !           244:                            int argc, char **argv, int **pidArrayPtr,
        !           245:                            int *inPipePtr, int *outPipePtr,
        !           246:                            int *errFilePtr));
        !           247: EXTERN Tcl_Trace       Tcl_CreateTrace _ANSI_ARGS_((Tcl_Interp *interp,
        !           248:                            int level, Tcl_CmdTraceProc *proc,
        !           249:                            ClientData clientData));
        !           250: EXTERN void            Tcl_DeleteCmdBuf _ANSI_ARGS_((Tcl_CmdBuf buffer));
        !           251: EXTERN int             Tcl_DeleteCommand _ANSI_ARGS_((Tcl_Interp *interp,
        !           252:                            char *cmdName));
        !           253: EXTERN void            Tcl_DeleteInterp _ANSI_ARGS_((Tcl_Interp *interp));
        !           254: EXTERN void            Tcl_DeleteTrace _ANSI_ARGS_((Tcl_Interp *interp,
        !           255:                            Tcl_Trace trace));
        !           256: EXTERN void            Tcl_DetachPids _ANSI_ARGS_((int numPids, int *pidPtr));
        !           257: EXTERN int             Tcl_DumpActiveMemory _ANSI_ARGS_((char *fileName));
        !           258: EXTERN char *          Tcl_ErrnoId _ANSI_ARGS_((void));
        !           259: EXTERN int             Tcl_Eval _ANSI_ARGS_((Tcl_Interp *interp, char *cmd,
        !           260:                            int flags, char **termPtr));
        !           261: EXTERN int             Tcl_EvalFile _ANSI_ARGS_((Tcl_Interp *interp,
        !           262:                            char *fileName));
        !           263: EXTERN int             Tcl_ExprBoolean _ANSI_ARGS_((Tcl_Interp *interp,
        !           264:                            char *string, int *ptr));
        !           265: EXTERN int             Tcl_ExprDouble _ANSI_ARGS_((Tcl_Interp *interp,
        !           266:                            char *string, double *ptr));
        !           267: EXTERN int             Tcl_ExprLong _ANSI_ARGS_((Tcl_Interp *interp,
        !           268:                            char *string, long *ptr));
        !           269: EXTERN int             Tcl_ExprString _ANSI_ARGS_((Tcl_Interp *interp,
        !           270:                            char *string));
        !           271: EXTERN int             Tcl_Fork _ANSI_ARGS_((void));
        !           272: EXTERN int             Tcl_GetBoolean _ANSI_ARGS_((Tcl_Interp *interp,
        !           273:                            char *string, int *boolPtr));
        !           274: EXTERN int             Tcl_GetDouble _ANSI_ARGS_((Tcl_Interp *interp,
        !           275:                            char *string, double *doublePtr));
        !           276: EXTERN int             Tcl_GetInt _ANSI_ARGS_((Tcl_Interp *interp,
        !           277:                            char *string, int *intPtr));
        !           278: EXTERN char *          Tcl_GetVar _ANSI_ARGS_((Tcl_Interp *interp,
        !           279:                            char *varName, int flags));
        !           280: EXTERN char *          Tcl_GetVar2 _ANSI_ARGS_((Tcl_Interp *interp,
        !           281:                            char *name1, char *name2, int flags));
        !           282: EXTERN int             Tcl_GlobalEval _ANSI_ARGS_((Tcl_Interp *interp,
        !           283:                            char *command));
        !           284: EXTERN void            Tcl_InitHistory _ANSI_ARGS_((Tcl_Interp *interp));
        !           285: EXTERN void            Tcl_InitMemory _ANSI_ARGS_((Tcl_Interp *interp));
        !           286: EXTERN char *          Tcl_Merge _ANSI_ARGS_((int argc, char **argv));
        !           287: EXTERN char *          Tcl_ParseVar _ANSI_ARGS_((Tcl_Interp *interp,
        !           288:                            char *string, char **termPtr));
        !           289: EXTERN int             Tcl_RecordAndEval _ANSI_ARGS_((Tcl_Interp *interp,
        !           290:                            char *cmd, int flags));
        !           291: EXTERN void            Tcl_ResetResult _ANSI_ARGS_((Tcl_Interp *interp));
        !           292: #define Tcl_Return Tcl_SetResult
        !           293: EXTERN int             Tcl_ScanElement _ANSI_ARGS_((char *string,
        !           294:                            int *flagPtr));
        !           295: EXTERN void            Tcl_SetErrorCode _ANSI_ARGS_((Tcl_Interp *interp, ...));
        !           296: EXTERN void            Tcl_SetResult _ANSI_ARGS_((Tcl_Interp *interp,
        !           297:                            char *string, Tcl_FreeProc *freeProc));
        !           298: EXTERN char *          Tcl_SetVar _ANSI_ARGS_((Tcl_Interp *interp,
        !           299:                            char *varName, char *newValue, int flags));
        !           300: EXTERN char *          Tcl_SetVar2 _ANSI_ARGS_((Tcl_Interp *interp,
        !           301:                            char *name1, char *name2, char *newValue,
        !           302:                            int flags));
        !           303: EXTERN char *          Tcl_SignalId _ANSI_ARGS_((int sig));
        !           304: EXTERN char *          Tcl_SignalMsg _ANSI_ARGS_((int sig));
        !           305: EXTERN int             Tcl_SplitList _ANSI_ARGS_((Tcl_Interp *interp,
        !           306:                            char *list, int *argcPtr, char ***argvPtr));
        !           307: EXTERN int             Tcl_StringMatch _ANSI_ARGS_((char *string,
        !           308:                            char *pattern));
        !           309: EXTERN char *          Tcl_TildeSubst _ANSI_ARGS_((Tcl_Interp *interp,
        !           310:                            char *name));
        !           311: EXTERN int             Tcl_TraceVar _ANSI_ARGS_((Tcl_Interp *interp,
        !           312:                            char *varName, int flags, Tcl_VarTraceProc *proc,
        !           313:                            ClientData clientData));
        !           314: EXTERN int             Tcl_TraceVar2 _ANSI_ARGS_((Tcl_Interp *interp,
        !           315:                            char *name1, char *name2, int flags,
        !           316:                            Tcl_VarTraceProc *proc, ClientData clientData));
        !           317: EXTERN char *          Tcl_UnixError _ANSI_ARGS_((Tcl_Interp *interp));
        !           318: EXTERN int             Tcl_UnsetVar _ANSI_ARGS_((Tcl_Interp *interp,
        !           319:                            char *varName, int flags));
        !           320: EXTERN int             Tcl_UnsetVar2 _ANSI_ARGS_((Tcl_Interp *interp,
        !           321:                            char *name1, char *name2, int flags));
        !           322: EXTERN void            Tcl_UntraceVar _ANSI_ARGS_((Tcl_Interp *interp,
        !           323:                            char *varName, int flags, Tcl_VarTraceProc *proc,
        !           324:                            ClientData clientData));
        !           325: EXTERN void            Tcl_UntraceVar2 _ANSI_ARGS_((Tcl_Interp *interp,
        !           326:                            char *name1, char *name2, int flags,
        !           327:                            Tcl_VarTraceProc *proc, ClientData clientData));
        !           328: EXTERN int             Tcl_VarEval _ANSI_ARGS_((Tcl_Interp *interp, ...));
        !           329: EXTERN ClientData      Tcl_VarTraceInfo _ANSI_ARGS_((Tcl_Interp *interp,
        !           330:                            char *varName, int flags,
        !           331:                            Tcl_VarTraceProc *procPtr,
        !           332:                            ClientData prevClientData));
        !           333: EXTERN ClientData      Tcl_VarTraceInfo2 _ANSI_ARGS_((Tcl_Interp *interp,
        !           334:                            char *name1, char *name2, int flags,
        !           335:                            Tcl_VarTraceProc *procPtr,
        !           336:                            ClientData prevClientData));
        !           337: EXTERN int             Tcl_WaitPids _ANSI_ARGS_((int numPids, int *pidPtr,
        !           338:                            int *statusPtr));
        !           339: 
        !           340: #endif /* _TCL */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.