summaryrefslogtreecommitdiff
path: root/compat/tcl-9.0
diff options
context:
space:
mode:
authorcashmere <cashmere@autistici.org>2026-09-04 09:05:24 +0200
committercashmere <cashmere@autistici.org>2026-09-04 09:05:24 +0200
commit4f49b16079b27d7ce633619e4cddfdf2bffbc952 (patch)
treec296c1e7f3c3e2f6859c6d3a1b1b208779b89679 /compat/tcl-9.0
downloadrelic-master.tar.gz
initial commitHEADmaster
Diffstat (limited to 'compat/tcl-9.0')
-rw-r--r--compat/tcl-9.0/generic/tcl.h2629
-rw-r--r--compat/tcl-9.0/generic/tclDecls.h4369
2 files changed, 6998 insertions, 0 deletions
diff --git a/compat/tcl-9.0/generic/tcl.h b/compat/tcl-9.0/generic/tcl.h
new file mode 100644
index 0000000..33f2439
--- /dev/null
+++ b/compat/tcl-9.0/generic/tcl.h
@@ -0,0 +1,2629 @@
+/*
+ * tcl.h --
+ *
+ * This header file describes the externally-visible facilities of the
+ * Tcl interpreter.
+ *
+ * Copyright (c) 1987-1994 The Regents of the University of California.
+ * Copyright (c) 1993-1996 Lucent Technologies.
+ * Copyright (c) 1994-1998 Sun Microsystems, Inc.
+ * Copyright (c) 1998-2000 by Scriptics Corporation.
+ * Copyright (c) 2002 by Kevin B. Kenny. All rights reserved.
+ *
+ * See the file "license.terms" for information on usage and redistribution of
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ */
+
+#ifndef _TCL
+#define _TCL
+
+/*
+ * For C++ compilers, use extern "C"
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The following defines are used to indicate the various release levels.
+ */
+
+#define TCL_ALPHA_RELEASE 0
+#define TCL_BETA_RELEASE 1
+#define TCL_FINAL_RELEASE 2
+
+/*
+ * When version numbers change here, must also go into the following files and
+ * update the version numbers:
+ *
+ * library/init.tcl (1 LOC patch)
+ * unix/configure.ac (2 LOC Major, 2 LOC minor, 1 LOC patch)
+ * win/configure.ac (as above)
+ * win/tcl.m4 (not patchlevel)
+ * README.md (sections 0 and 2, with and without separator)
+ * win/README (not patchlevel) (sections 0 and 2)
+ * unix/tcl.spec (1 LOC patch)
+ */
+
+#if !defined(TCL_MAJOR_VERSION)
+# define TCL_MAJOR_VERSION 9
+#endif
+#if TCL_MAJOR_VERSION == 9
+# define TCL_MINOR_VERSION 0
+# define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE
+# define TCL_RELEASE_SERIAL 0
+
+# define TCL_VERSION "9.0"
+# define TCL_PATCH_LEVEL "9.0.0"
+#endif /* TCL_MAJOR_VERSION */
+
+#if defined(RC_INVOKED)
+/*
+ * Utility macros: STRINGIFY takes an argument and wraps it in "" (double
+ * quotation marks), JOIN joins two arguments.
+ */
+
+#ifndef STRINGIFY
+# define STRINGIFY(x) STRINGIFY1(x)
+# define STRINGIFY1(x) #x
+#endif
+#ifndef JOIN
+# define JOIN(a,b) JOIN1(a,b)
+# define JOIN1(a,b) a##b
+#endif
+#endif /* RC_INVOKED */
+
+/*
+ * A special definition used to allow this header file to be included from
+ * windows resource files so that they can obtain version information.
+ * RC_INVOKED is defined by default by the windows RC tool.
+ *
+ * Resource compilers don't like all the C stuff, like typedefs and function
+ * declarations, that occur below, so block them out.
+ */
+
+#ifndef RC_INVOKED
+
+/*
+ * Special macro to define mutexes.
+ */
+
+#define TCL_DECLARE_MUTEX(name) \
+ static Tcl_Mutex name;
+
+/*
+ * Tcl's public routine Tcl_FSSeek() uses the values SEEK_SET, SEEK_CUR, and
+ * SEEK_END, all #define'd by stdio.h .
+ *
+ * Also, many extensions need stdio.h, and they've grown accustomed to tcl.h
+ * providing it for them rather than #include-ing it themselves as they
+ * should, so also for their sake, we keep the #include to be consistent with
+ * prior Tcl releases.
+ */
+
+#include <stdio.h>
+#include <stddef.h>
+
+#if defined(__GNUC__) && (__GNUC__ > 2)
+# if defined(_WIN32) && defined(__USE_MINGW_ANSI_STDIO) && __USE_MINGW_ANSI_STDIO
+# define TCL_FORMAT_PRINTF(a,b) __attribute__ ((__format__ (__MINGW_PRINTF_FORMAT, a, b)))
+# else
+# define TCL_FORMAT_PRINTF(a,b) __attribute__ ((__format__ (__printf__, a, b)))
+# endif
+# define TCL_NORETURN __attribute__ ((__noreturn__))
+# define TCL_NOINLINE __attribute__ ((__noinline__))
+# define TCL_NORETURN1 __attribute__ ((__noreturn__))
+#else
+# define TCL_FORMAT_PRINTF(a,b)
+# if defined(_MSC_VER)
+# define TCL_NORETURN __declspec(noreturn)
+# define TCL_NOINLINE __declspec(noinline)
+# else
+# define TCL_NORETURN /* nothing */
+# define TCL_NOINLINE /* nothing */
+# endif
+# define TCL_NORETURN1 /* nothing */
+#endif
+
+/*
+ * Allow a part of Tcl's API to be explicitly marked as deprecated.
+ *
+ * Used to make TIP 330/336 generate moans even if people use the
+ * compatibility macros. Change your code, guys! We won't support you forever.
+ */
+
+#if defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
+# if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5))
+# define TCL_DEPRECATED_API(msg) __attribute__ ((__deprecated__ (msg)))
+# else
+# define TCL_DEPRECATED_API(msg) __attribute__ ((__deprecated__))
+# endif
+#else
+# define TCL_DEPRECATED_API(msg) /* nothing portable */
+#endif
+
+/*
+ *----------------------------------------------------------------------------
+ * Macros used to declare a function to be exported by a DLL. Used by Windows,
+ * maps to no-op declarations on non-Windows systems. The default build on
+ * windows is for a DLL, which causes the DLLIMPORT and DLLEXPORT macros to be
+ * nonempty. To build a static library, the macro STATIC_BUILD should be
+ * defined.
+ *
+ * Note: when building static but linking dynamically to MSVCRT we must still
+ * correctly decorate the C library imported function. Use CRTIMPORT
+ * for this purpose. _DLL is defined by the compiler when linking to
+ * MSVCRT.
+ */
+
+#ifdef _WIN32
+# ifdef STATIC_BUILD
+# define DLLIMPORT
+# define DLLEXPORT
+# ifdef _DLL
+# define CRTIMPORT __declspec(dllimport)
+# else
+# define CRTIMPORT
+# endif
+# else
+# define DLLIMPORT __declspec(dllimport)
+# define DLLEXPORT __declspec(dllexport)
+# define CRTIMPORT __declspec(dllimport)
+# endif
+#else
+# define DLLIMPORT
+# if defined(__GNUC__) && __GNUC__ > 3
+# define DLLEXPORT __attribute__ ((visibility("default")))
+# else
+# define DLLEXPORT
+# endif
+# define CRTIMPORT
+#endif
+
+/*
+ * These macros are used to control whether functions are being declared for
+ * import or export. If a function is being declared while it is being built
+ * to be included in a shared library, then it should have the DLLEXPORT
+ * storage class. If is being declared for use by a module that is going to
+ * link against the shared library, then it should have the DLLIMPORT storage
+ * class. If the symbol is being declared for a static build or for use from a
+ * stub library, then the storage class should be empty.
+ *
+ * The convention is that a macro called BUILD_xxxx, where xxxx is the name of
+ * a library we are building, is set on the compile line for sources that are
+ * to be placed in the library. When this macro is set, the storage class will
+ * be set to DLLEXPORT. At the end of the header file, the storage class will
+ * be reset to DLLIMPORT.
+ */
+
+#undef TCL_STORAGE_CLASS
+#ifdef BUILD_tcl
+# define TCL_STORAGE_CLASS DLLEXPORT
+#else
+# ifdef USE_TCL_STUBS
+# define TCL_STORAGE_CLASS
+# else
+# define TCL_STORAGE_CLASS DLLIMPORT
+# endif
+#endif
+
+#if !defined(CONST86) && !defined(TCL_NO_DEPRECATED)
+# define CONST86 const
+#endif
+
+/*
+ * Make sure EXTERN isn't defined elsewhere.
+ */
+
+#ifdef EXTERN
+# undef EXTERN
+#endif /* EXTERN */
+
+#ifdef __cplusplus
+# define EXTERN extern "C" TCL_STORAGE_CLASS
+#else
+# define EXTERN extern TCL_STORAGE_CLASS
+#endif
+
+/*
+ * Miscellaneous declarations.
+ */
+
+typedef void *ClientData;
+
+/*
+ * Darwin specific configure overrides (to support fat compiles, where
+ * configure runs only once for multiple architectures):
+ */
+
+#ifdef __APPLE__
+# ifdef __LP64__
+# define TCL_WIDE_INT_IS_LONG 1
+# define TCL_CFG_DO64BIT 1
+# else /* !__LP64__ */
+# undef TCL_WIDE_INT_IS_LONG
+# undef TCL_CFG_DO64BIT
+# endif /* __LP64__ */
+# undef HAVE_STRUCT_STAT64
+#endif /* __APPLE__ */
+
+/* Cross-compiling 32-bit on a 64-bit platform? Then our
+ * configure script does the wrong thing. Correct that here.
+ */
+#if defined(__GNUC__) && !defined(_WIN32) && !defined(__LP64__)
+# undef TCL_WIDE_INT_IS_LONG
+#endif
+
+/*
+ * Define Tcl_WideInt to be a type that is (at least) 64-bits wide, and define
+ * Tcl_WideUInt to be the unsigned variant of that type (assuming that where
+ * we have one, we can have the other.)
+ *
+ * Also defines the following macros:
+ * TCL_WIDE_INT_IS_LONG - if wide ints are really longs (i.e. we're on a
+ * LP64 system such as modern Solaris or Linux ... not including Win64)
+ * Tcl_WideAsLong - forgetful converter from wideInt to long.
+ * Tcl_LongAsWide - sign-extending converter from long to wideInt.
+ * Tcl_WideAsDouble - converter from wideInt to double.
+ * Tcl_DoubleAsWide - converter from double to wideInt.
+ *
+ * The following invariant should hold for any long value 'longVal':
+ * longVal == Tcl_WideAsLong(Tcl_LongAsWide(longVal))
+ */
+
+#if !defined(TCL_WIDE_INT_TYPE) && !defined(TCL_WIDE_INT_IS_LONG) && !defined(_WIN32) && !defined(__GNUC__)
+/*
+ * Don't know what platform it is and configure hasn't discovered what is
+ * going on for us. Try to guess...
+ */
+# include <limits.h>
+# if defined(LLONG_MAX) && (LLONG_MAX == LONG_MAX)
+# define TCL_WIDE_INT_IS_LONG 1
+# endif
+#endif
+
+#ifndef TCL_WIDE_INT_TYPE
+# define TCL_WIDE_INT_TYPE long long
+#endif /* !TCL_WIDE_INT_TYPE */
+
+typedef TCL_WIDE_INT_TYPE Tcl_WideInt;
+typedef unsigned TCL_WIDE_INT_TYPE Tcl_WideUInt;
+
+#ifndef TCL_LL_MODIFIER
+# if defined(_WIN32) && (!defined(__USE_MINGW_ANSI_STDIO) || !__USE_MINGW_ANSI_STDIO)
+# define TCL_LL_MODIFIER "I64"
+# else
+# define TCL_LL_MODIFIER "ll"
+# endif
+#endif /* !TCL_LL_MODIFIER */
+#ifndef TCL_Z_MODIFIER
+# if defined(__GNUC__) && !defined(_WIN32)
+# define TCL_Z_MODIFIER "z"
+# elif defined(_WIN64)
+# define TCL_Z_MODIFIER TCL_LL_MODIFIER
+# else
+# define TCL_Z_MODIFIER ""
+# endif
+#endif /* !TCL_Z_MODIFIER */
+#ifndef TCL_T_MODIFIER
+# if defined(__GNUC__) && !defined(_WIN32)
+# define TCL_T_MODIFIER "t"
+# elif defined(_WIN64)
+# define TCL_T_MODIFIER TCL_LL_MODIFIER
+# else
+# define TCL_T_MODIFIER TCL_Z_MODIFIER
+# endif
+#endif /* !TCL_T_MODIFIER */
+
+#define Tcl_WideAsLong(val) ((long)((Tcl_WideInt)(val)))
+#define Tcl_LongAsWide(val) ((Tcl_WideInt)((long)(val)))
+#define Tcl_WideAsDouble(val) ((double)((Tcl_WideInt)(val)))
+#define Tcl_DoubleAsWide(val) ((Tcl_WideInt)((double)(val)))
+
+#if TCL_MAJOR_VERSION < 9
+# ifndef Tcl_Size
+ typedef int Tcl_Size;
+# endif
+# ifndef TCL_SIZE_MAX
+# define TCL_SIZE_MAX ((int)(((unsigned int)-1)>>1))
+# endif
+# ifndef TCL_SIZE_MODIFIER
+# define TCL_SIZE_MODIFIER ""
+#endif
+#else
+ typedef ptrdiff_t Tcl_Size;
+# define TCL_SIZE_MAX ((Tcl_Size)(((size_t)-1)>>1))
+# define TCL_SIZE_MODIFIER TCL_T_MODIFIER
+#endif /* TCL_MAJOR_VERSION */
+
+#ifdef _WIN32
+# if TCL_MAJOR_VERSION > 8 || defined(_WIN64) || defined(_USE_64BIT_TIME_T)
+ typedef struct __stat64 Tcl_StatBuf;
+# elif defined(_USE_32BIT_TIME_T)
+ typedef struct _stati64 Tcl_StatBuf;
+# else
+ typedef struct _stat32i64 Tcl_StatBuf;
+# endif
+#elif defined(__CYGWIN__)
+ typedef struct {
+ unsigned st_dev;
+ unsigned short st_ino;
+ unsigned short st_mode;
+ short st_nlink;
+ short st_uid;
+ short st_gid;
+ /* Here is a 2-byte gap */
+ unsigned st_rdev;
+ /* Here is a 4-byte gap */
+ long long st_size;
+ struct {long tv_sec;} st_atim;
+ struct {long tv_sec;} st_mtim;
+ struct {long tv_sec;} st_ctim;
+ } Tcl_StatBuf;
+#else
+ typedef struct stat Tcl_StatBuf;
+#endif
+
+/*
+ *----------------------------------------------------------------------------
+ * Data structures defined opaquely in this module. The definitions below just
+ * provide dummy types.
+ */
+
+typedef struct Tcl_AsyncHandler_ *Tcl_AsyncHandler;
+typedef struct Tcl_Channel_ *Tcl_Channel;
+typedef struct Tcl_ChannelTypeVersion_ *Tcl_ChannelTypeVersion;
+typedef struct Tcl_Command_ *Tcl_Command;
+typedef struct Tcl_Condition_ *Tcl_Condition;
+typedef struct Tcl_Dict_ *Tcl_Dict;
+typedef struct Tcl_EncodingState_ *Tcl_EncodingState;
+typedef struct Tcl_Encoding_ *Tcl_Encoding;
+typedef struct Tcl_Event Tcl_Event;
+typedef struct Tcl_Interp Tcl_Interp;
+typedef struct Tcl_InterpState_ *Tcl_InterpState;
+typedef struct Tcl_LoadHandle_ *Tcl_LoadHandle;
+typedef struct Tcl_Mutex_ *Tcl_Mutex;
+typedef struct Tcl_Pid_ *Tcl_Pid;
+typedef struct Tcl_RegExp_ *Tcl_RegExp;
+typedef struct Tcl_ThreadDataKey_ *Tcl_ThreadDataKey;
+typedef struct Tcl_ThreadId_ *Tcl_ThreadId;
+typedef struct Tcl_TimerToken_ *Tcl_TimerToken;
+typedef struct Tcl_Trace_ *Tcl_Trace;
+typedef struct Tcl_Var_ *Tcl_Var;
+typedef struct Tcl_ZLibStream_ *Tcl_ZlibStream;
+
+/*
+ *----------------------------------------------------------------------------
+ * Definition of the interface to functions implementing threads. A function
+ * following this definition is given to each call of 'Tcl_CreateThread' and
+ * will be called as the main fuction of the new thread created by that call.
+ */
+
+#if defined _WIN32
+typedef unsigned (__stdcall Tcl_ThreadCreateProc) (void *clientData);
+#else
+typedef void (Tcl_ThreadCreateProc) (void *clientData);
+#endif
+
+/*
+ * Threading function return types used for abstracting away platform
+ * differences when writing a Tcl_ThreadCreateProc. See the NewThread function
+ * in generic/tclThreadTest.c for it's usage.
+ */
+
+#if defined _WIN32
+# define Tcl_ThreadCreateType unsigned __stdcall
+# define TCL_THREAD_CREATE_RETURN return 0
+#else
+# define Tcl_ThreadCreateType void
+# define TCL_THREAD_CREATE_RETURN
+#endif
+
+/*
+ * Definition of values for default stacksize and the possible flags to be
+ * given to Tcl_CreateThread.
+ */
+
+#define TCL_THREAD_STACK_DEFAULT (0) /* Use default size for stack. */
+#define TCL_THREAD_NOFLAGS (0000) /* Standard flags, default
+ * behaviour. */
+#define TCL_THREAD_JOINABLE (0001) /* Mark the thread as joinable. */
+
+/*
+ * Flag values passed to Tcl_StringCaseMatch.
+ */
+
+#define TCL_MATCH_NOCASE (1<<0)
+
+/*
+ * Flag values passed to Tcl_GetRegExpFromObj.
+ */
+
+#define TCL_REG_BASIC 000000 /* BREs (convenience). */
+#define TCL_REG_EXTENDED 000001 /* EREs. */
+#define TCL_REG_ADVF 000002 /* Advanced features in EREs. */
+#define TCL_REG_ADVANCED 000003 /* AREs (which are also EREs). */
+#define TCL_REG_QUOTE 000004 /* No special characters, none. */
+#define TCL_REG_NOCASE 000010 /* Ignore case. */
+#define TCL_REG_NOSUB 000020 /* Don't care about subexpressions. */
+#define TCL_REG_EXPANDED 000040 /* Expanded format, white space &
+ * comments. */
+#define TCL_REG_NLSTOP 000100 /* \n doesn't match . or [^ ] */
+#define TCL_REG_NLANCH 000200 /* ^ matches after \n, $ before. */
+#define TCL_REG_NEWLINE 000300 /* Newlines are line terminators. */
+#define TCL_REG_CANMATCH 001000 /* Report details on partial/limited
+ * matches. */
+
+/*
+ * Flags values passed to Tcl_RegExpExecObj.
+ */
+
+#define TCL_REG_NOTBOL 0001 /* Beginning of string does not match ^. */
+#define TCL_REG_NOTEOL 0002 /* End of string does not match $. */
+
+/*
+ * Structures filled in by Tcl_RegExpInfo. Note that all offset values are
+ * relative to the start of the match string, not the beginning of the entire
+ * string.
+ */
+
+typedef struct Tcl_RegExpIndices {
+#if TCL_MAJOR_VERSION > 8
+ Tcl_Size start; /* Character offset of first character in
+ * match. */
+ Tcl_Size end; /* Character offset of first character after
+ * the match. */
+#else
+ long start;
+ long end;
+#endif
+} Tcl_RegExpIndices;
+
+typedef struct Tcl_RegExpInfo {
+ Tcl_Size nsubs; /* Number of subexpressions in the compiled
+ * expression. */
+ Tcl_RegExpIndices *matches; /* Array of nsubs match offset pairs. */
+#if TCL_MAJOR_VERSION > 8
+ Tcl_Size extendStart; /* The offset at which a subsequent match
+ * might begin. */
+#else
+ long extendStart;
+ long reserved; /* Reserved for later use. */
+#endif
+} Tcl_RegExpInfo;
+
+/*
+ * Picky compilers complain if this typdef doesn't appear before the struct's
+ * reference in tclDecls.h.
+ */
+
+typedef Tcl_StatBuf *Tcl_Stat_;
+typedef struct stat *Tcl_OldStat_;
+
+/*
+ *----------------------------------------------------------------------------
+ * When a TCL command returns, the interpreter contains a result from the
+ * command. Programmers are strongly encouraged to use one of the functions
+ * Tcl_GetObjResult() or Tcl_GetStringResult() to read the interpreter's
+ * result. See the SetResult man page for details. Besides this result, the
+ * command function returns an integer code, which is one of the following:
+ *
+ * TCL_OK Command completed normally; the interpreter's result
+ * contains the command's result.
+ * TCL_ERROR The command couldn't be completed successfully; the
+ * interpreter's result describes what went wrong.
+ * TCL_RETURN The command requests that the current function return;
+ * the interpreter's result contains the function's
+ * return value.
+ * TCL_BREAK The command requests that the innermost loop be
+ * exited; the interpreter's result is meaningless.
+ * TCL_CONTINUE Go on to the next iteration of the current loop; the
+ * interpreter's result is meaningless.
+ * Integer return codes in the range TCL_CODE_USER_MIN to TCL_CODE_USER_MAX are
+ * reserved for the use of packages.
+ */
+
+#define TCL_OK 0
+#define TCL_ERROR 1
+#define TCL_RETURN 2
+#define TCL_BREAK 3
+#define TCL_CONTINUE 4
+#define TCL_CODE_USER_MIN 5
+#define TCL_CODE_USER_MAX 0x3fffffff /* 1073741823 */
+
+/*
+ *----------------------------------------------------------------------------
+ * Flags to control what substitutions are performed by Tcl_SubstObj():
+ */
+
+#define TCL_SUBST_COMMANDS 001
+#define TCL_SUBST_VARIABLES 002
+#define TCL_SUBST_BACKSLASHES 004
+#define TCL_SUBST_ALL 007
+
+/*
+ * Forward declaration of Tcl_Obj to prevent an error when the forward
+ * reference to Tcl_Obj is encountered in the function types declared below.
+ */
+
+struct Tcl_Obj;
+
+/*
+ *----------------------------------------------------------------------------
+ * Function types defined by Tcl:
+ */
+
+typedef int (Tcl_AppInitProc) (Tcl_Interp *interp);
+typedef int (Tcl_AsyncProc) (void *clientData, Tcl_Interp *interp,
+ int code);
+typedef void (Tcl_ChannelProc) (void *clientData, int mask);
+typedef void (Tcl_CloseProc) (void *data);
+typedef void (Tcl_CmdDeleteProc) (void *clientData);
+typedef int (Tcl_CmdProc) (void *clientData, Tcl_Interp *interp,
+ int argc, const char *argv[]);
+typedef void (Tcl_CmdTraceProc) (void *clientData, Tcl_Interp *interp,
+ int level, char *command, Tcl_CmdProc *proc,
+ void *cmdClientData, int argc, const char *argv[]);
+typedef int (Tcl_CmdObjTraceProc) (void *clientData, Tcl_Interp *interp,
+ int level, const char *command, Tcl_Command commandInfo, int objc,
+ struct Tcl_Obj *const *objv);
+typedef void (Tcl_CmdObjTraceDeleteProc) (void *clientData);
+typedef void (Tcl_DupInternalRepProc) (struct Tcl_Obj *srcPtr,
+ struct Tcl_Obj *dupPtr);
+typedef int (Tcl_EncodingConvertProc) (void *clientData, const char *src,
+ int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst,
+ int dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr);
+typedef void (Tcl_EncodingFreeProc) (void *clientData);
+typedef int (Tcl_EventProc) (Tcl_Event *evPtr, int flags);
+typedef void (Tcl_EventCheckProc) (void *clientData, int flags);
+typedef int (Tcl_EventDeleteProc) (Tcl_Event *evPtr, void *clientData);
+typedef void (Tcl_EventSetupProc) (void *clientData, int flags);
+typedef void (Tcl_ExitProc) (void *clientData);
+typedef void (Tcl_FileProc) (void *clientData, int mask);
+typedef void (Tcl_FileFreeProc) (void *clientData);
+typedef void (Tcl_FreeInternalRepProc) (struct Tcl_Obj *objPtr);
+typedef void (Tcl_IdleProc) (void *clientData);
+typedef void (Tcl_InterpDeleteProc) (void *clientData,
+ Tcl_Interp *interp);
+typedef void (Tcl_NamespaceDeleteProc) (void *clientData);
+typedef int (Tcl_ObjCmdProc) (void *clientData, Tcl_Interp *interp,
+ int objc, struct Tcl_Obj *const *objv);
+#if TCL_MAJOR_VERSION > 8
+typedef int (Tcl_ObjCmdProc2) (void *clientData, Tcl_Interp *interp,
+ Tcl_Size objc, struct Tcl_Obj *const *objv);
+typedef int (Tcl_CmdObjTraceProc2) (void *clientData, Tcl_Interp *interp,
+ Tcl_Size level, const char *command, Tcl_Command commandInfo, Tcl_Size objc,
+ struct Tcl_Obj *const *objv);
+typedef void (Tcl_FreeProc) (void *blockPtr);
+#define Tcl_ExitProc Tcl_FreeProc
+#define Tcl_FileFreeProc Tcl_FreeProc
+#define Tcl_FileFreeProc Tcl_FreeProc
+#define Tcl_EncodingFreeProc Tcl_FreeProc
+#else
+#define Tcl_ObjCmdProc2 Tcl_ObjCmdProc
+#define Tcl_CmdObjTraceProc2 Tcl_CmdObjTraceProc
+typedef void (Tcl_FreeProc) (char *blockPtr);
+#endif
+typedef int (Tcl_LibraryInitProc) (Tcl_Interp *interp);
+typedef int (Tcl_LibraryUnloadProc) (Tcl_Interp *interp, int flags);
+typedef void (Tcl_PanicProc) (const char *format, ...);
+typedef void (Tcl_TcpAcceptProc) (void *callbackData, Tcl_Channel chan,
+ char *address, int port);
+typedef void (Tcl_TimerProc) (void *clientData);
+typedef int (Tcl_SetFromAnyProc) (Tcl_Interp *interp, struct Tcl_Obj *objPtr);
+typedef void (Tcl_UpdateStringProc) (struct Tcl_Obj *objPtr);
+typedef char * (Tcl_VarTraceProc) (void *clientData, Tcl_Interp *interp,
+ const char *part1, const char *part2, int flags);
+typedef void (Tcl_CommandTraceProc) (void *clientData, Tcl_Interp *interp,
+ const char *oldName, const char *newName, int flags);
+typedef void (Tcl_CreateFileHandlerProc) (int fd, int mask, Tcl_FileProc *proc,
+ void *clientData);
+typedef void (Tcl_DeleteFileHandlerProc) (int fd);
+typedef void (Tcl_AlertNotifierProc) (void *clientData);
+typedef void (Tcl_ServiceModeHookProc) (int mode);
+typedef void *(Tcl_InitNotifierProc) (void);
+typedef void (Tcl_FinalizeNotifierProc) (void *clientData);
+typedef void (Tcl_MainLoopProc) (void);
+
+/* Abstract List functions */
+typedef Tcl_Size (Tcl_ObjTypeLengthProc) (struct Tcl_Obj *listPtr);
+typedef int (Tcl_ObjTypeIndexProc) (Tcl_Interp *interp, struct Tcl_Obj *listPtr,
+ Tcl_Size index, struct Tcl_Obj** elemObj);
+typedef int (Tcl_ObjTypeSliceProc) (Tcl_Interp *interp, struct Tcl_Obj *listPtr,
+ Tcl_Size fromIdx, Tcl_Size toIdx, struct Tcl_Obj **newObjPtr);
+typedef int (Tcl_ObjTypeReverseProc) (Tcl_Interp *interp,
+ struct Tcl_Obj *listPtr, struct Tcl_Obj **newObjPtr);
+typedef int (Tcl_ObjTypeGetElements) (Tcl_Interp *interp,
+ struct Tcl_Obj *listPtr, Tcl_Size *objcptr, struct Tcl_Obj ***objvptr);
+typedef struct Tcl_Obj *(Tcl_ObjTypeSetElement) (Tcl_Interp *interp,
+ struct Tcl_Obj *listPtr, Tcl_Size indexCount,
+ struct Tcl_Obj *const indexArray[], struct Tcl_Obj *valueObj);
+typedef int (Tcl_ObjTypeReplaceProc) (Tcl_Interp *interp,
+ struct Tcl_Obj *listObj, Tcl_Size first, Tcl_Size numToDelete,
+ Tcl_Size numToInsert, struct Tcl_Obj *const insertObjs[]);
+typedef int (Tcl_ObjTypeInOperatorProc) (Tcl_Interp *interp,
+ struct Tcl_Obj *valueObj, struct Tcl_Obj *listObj, int *boolResult);
+
+#ifndef TCL_NO_DEPRECATED
+# define Tcl_PackageInitProc Tcl_LibraryInitProc
+# define Tcl_PackageUnloadProc Tcl_LibraryUnloadProc
+#endif
+
+/*
+ *----------------------------------------------------------------------------
+ * The following structure represents a type of object, which is a particular
+ * internal representation for an object plus a set of functions that provide
+ * standard operations on objects of that type.
+ */
+
+typedef struct Tcl_ObjType {
+ const char *name; /* Name of the type, e.g. "int". */
+ Tcl_FreeInternalRepProc *freeIntRepProc;
+ /* Called to free any storage for the type's
+ * internal rep. NULL if the internal rep does
+ * not need freeing. */
+ Tcl_DupInternalRepProc *dupIntRepProc;
+ /* Called to create a new object as a copy of
+ * an existing object. */
+ Tcl_UpdateStringProc *updateStringProc;
+ /* Called to update the string rep from the
+ * type's internal representation. */
+ Tcl_SetFromAnyProc *setFromAnyProc;
+ /* Called to convert the object's internal rep
+ * to this type. Frees the internal rep of the
+ * old type. Returns TCL_ERROR on failure. */
+#if TCL_MAJOR_VERSION > 8
+ size_t version; /* Version field for future-proofing. */
+
+ /* List emulation functions - ObjType Version 1 */
+ Tcl_ObjTypeLengthProc *lengthProc;
+ /* Return the [llength] of the AbstractList */
+ Tcl_ObjTypeIndexProc *indexProc;
+ /* Return a value (Tcl_Obj) at a given index */
+ Tcl_ObjTypeSliceProc *sliceProc;
+ /* Return an AbstractList for
+ * [lrange $al $start $end] */
+ Tcl_ObjTypeReverseProc *reverseProc;
+ /* Return an AbstractList for [lreverse $al] */
+ Tcl_ObjTypeGetElements *getElementsProc;
+ /* Return an objv[] of all elements in the list */
+ Tcl_ObjTypeSetElement *setElementProc;
+ /* Replace the element at the indicies with the
+ * given valueObj. */
+ Tcl_ObjTypeReplaceProc *replaceProc;
+ /* Replace sublist with another sublist */
+ Tcl_ObjTypeInOperatorProc *inOperProc;
+ /* "in" and "ni" expr list operation.
+ * Determine if the given string value matches
+ * an element in the list. */
+#endif
+} Tcl_ObjType;
+
+#if TCL_MAJOR_VERSION > 8
+# define TCL_OBJTYPE_V0 0, \
+ 0,0,0,0,0,0,0,0 /* Pre-Tcl 9 */
+# define TCL_OBJTYPE_V1(a) offsetof(Tcl_ObjType, indexProc), \
+ a,0,0,0,0,0,0,0 /* Tcl 9 Version 1 */
+# define TCL_OBJTYPE_V2(a,b,c,d,e,f,g,h) sizeof(Tcl_ObjType), \
+ a,b,c,d,e,f,g,h /* Tcl 9 - AbstractLists */
+#else
+# define TCL_OBJTYPE_V0 /* just empty */
+# define TCL_OBJTYPE_V1(a) /* just empty */
+# define TCL_OBJTYPE_V2(a,b,c,d,e,f,g,h) /* just empty */
+#endif
+
+/*
+ * The following structure stores an internal representation (internalrep) for
+ * a Tcl value. An internalrep is associated with an Tcl_ObjType when both
+ * are stored in the same Tcl_Obj. The routines of the Tcl_ObjType govern
+ * the handling of the internalrep.
+ */
+
+typedef union Tcl_ObjInternalRep { /* The internal representation: */
+ long longValue; /* - an long integer value. */
+ double doubleValue; /* - a double-precision floating value. */
+ void *otherValuePtr; /* - another, type-specific value, */
+ /* not used internally any more. */
+ Tcl_WideInt wideValue; /* - an integer value >= 64bits */
+ struct { /* - internal rep as two pointers. */
+ void *ptr1;
+ void *ptr2;
+ } twoPtrValue;
+ struct { /* - internal rep as a pointer and a long, */
+ void *ptr; /* not used internally any more. */
+ unsigned long value;
+ } ptrAndLongRep;
+ struct { /* - use for pointer and length reps */
+ void *ptr;
+ Tcl_Size size;
+ } ptrAndSize;
+} Tcl_ObjInternalRep;
+
+/*
+ * One of the following structures exists for each object in the Tcl system.
+ * An object stores a value as either a string, some internal representation,
+ * or both.
+ */
+
+typedef struct Tcl_Obj {
+ Tcl_Size refCount; /* When 0 the object will be freed. */
+ char *bytes; /* This points to the first byte of the
+ * object's string representation. The array
+ * must be followed by a null byte (i.e., at
+ * offset length) but may also contain
+ * embedded null characters. The array's
+ * storage is allocated by Tcl_Alloc. NULL means
+ * the string rep is invalid and must be
+ * regenerated from the internal rep. Clients
+ * should use Tcl_GetStringFromObj or
+ * Tcl_GetString to get a pointer to the byte
+ * array as a readonly value. */
+ Tcl_Size length; /* The number of bytes at *bytes, not
+ * including the terminating null. */
+ const Tcl_ObjType *typePtr; /* Denotes the object's type. Always
+ * corresponds to the type of the object's
+ * internal rep. NULL indicates the object has
+ * no internal rep (has no type). */
+ Tcl_ObjInternalRep internalRep;
+ /* The internal representation: */
+} Tcl_Obj;
+
+/*
+ *----------------------------------------------------------------------------
+ * The following definitions support Tcl's namespace facility. Note: the first
+ * five fields must match exactly the fields in a Namespace structure (see
+ * tclInt.h).
+ */
+
+typedef struct Tcl_Namespace {
+ char *name; /* The namespace's name within its parent
+ * namespace. This contains no ::'s. The name
+ * of the global namespace is "" although "::"
+ * is an synonym. */
+ char *fullName; /* The namespace's fully qualified name. This
+ * starts with ::. */
+ void *clientData; /* Arbitrary value associated with this
+ * namespace. */
+ Tcl_NamespaceDeleteProc *deleteProc;
+ /* Function invoked when deleting the
+ * namespace to, e.g., free clientData. */
+ struct Tcl_Namespace *parentPtr;
+ /* Points to the namespace that contains this
+ * one. NULL if this is the global
+ * namespace. */
+} Tcl_Namespace;
+
+/*
+ *----------------------------------------------------------------------------
+ * The following structure represents a call frame, or activation record. A
+ * call frame defines a naming context for a procedure call: its local scope
+ * (for local variables) and its namespace scope (used for non-local
+ * variables; often the global :: namespace). A call frame can also define the
+ * naming context for a namespace eval or namespace inscope command: the
+ * namespace in which the command's code should execute. The Tcl_CallFrame
+ * structures exist only while procedures or namespace eval/inscope's are
+ * being executed, and provide a Tcl call stack.
+ *
+ * A call frame is initialized and pushed using Tcl_PushCallFrame and popped
+ * using Tcl_PopCallFrame. Storage for a Tcl_CallFrame must be provided by the
+ * Tcl_PushCallFrame caller, and callers typically allocate them on the C call
+ * stack for efficiency. For this reason, Tcl_CallFrame is defined as a
+ * structure and not as an opaque token. However, most Tcl_CallFrame fields
+ * are hidden since applications should not access them directly; others are
+ * declared as "dummyX".
+ *
+ * WARNING!! The structure definition must be kept consistent with the
+ * CallFrame structure in tclInt.h. If you change one, change the other.
+ */
+
+typedef struct Tcl_CallFrame {
+ Tcl_Namespace *nsPtr; /* Current namespace for the call frame. */
+ int dummy1;
+ Tcl_Size dummy2;
+ void *dummy3;
+ void *dummy4;
+ void *dummy5;
+ Tcl_Size dummy6;
+ void *dummy7;
+ void *dummy8;
+ Tcl_Size dummy9;
+ void *dummy10;
+ void *dummy11;
+ void *dummy12;
+ void *dummy13;
+} Tcl_CallFrame;
+
+/*
+ *----------------------------------------------------------------------------
+ * Information about commands that is returned by Tcl_GetCommandInfo and
+ * passed to Tcl_SetCommandInfo. objProc is an objc/objv object-based command
+ * function while proc is a traditional Tcl argc/argv string-based function.
+ * Tcl_CreateObjCommand and Tcl_CreateCommand ensure that both objProc and
+ * proc are non-NULL and can be called to execute the command. However, it may
+ * be faster to call one instead of the other. The member isNativeObjectProc
+ * is set to 1 if an object-based function was registered by
+ * Tcl_CreateObjCommand, and to 0 if a string-based function was registered by
+ * Tcl_CreateCommand. The other function is typically set to a compatibility
+ * wrapper that does string-to-object or object-to-string argument conversions
+ * then calls the other function.
+ */
+
+typedef struct {
+ int isNativeObjectProc; /* 1 if objProc was registered by a call to
+ * Tcl_CreateObjCommand; 2 if objProc was registered by
+ * a call to Tcl_CreateObjCommand2; 0 otherwise.
+ * Tcl_SetCmdInfo does not modify this field. */
+ Tcl_ObjCmdProc *objProc; /* Command's object-based function. */
+ void *objClientData; /* ClientData for object proc. */
+ Tcl_CmdProc *proc; /* Command's string-based function. */
+ void *clientData; /* ClientData for string proc. */
+ Tcl_CmdDeleteProc *deleteProc;
+ /* Function to call when command is
+ * deleted. */
+ void *deleteData; /* Value to pass to deleteProc (usually the
+ * same as clientData). */
+ Tcl_Namespace *namespacePtr;/* Points to the namespace that contains this
+ * command. Note that Tcl_SetCmdInfo will not
+ * change a command's namespace; use
+ * TclRenameCommand or Tcl_Eval (of 'rename')
+ * to do that. */
+ Tcl_ObjCmdProc2 *objProc2; /* Command's object2-based function. */
+ void *objClientData2; /* ClientData for object2 proc. */
+} Tcl_CmdInfo;
+
+/*
+ *----------------------------------------------------------------------------
+ * The structure defined below is used to hold dynamic strings. The only
+ * fields that clients should use are string and length, accessible via the
+ * macros Tcl_DStringValue and Tcl_DStringLength.
+ */
+
+#define TCL_DSTRING_STATIC_SIZE 200
+typedef struct Tcl_DString {
+ char *string; /* Points to beginning of string: either
+ * staticSpace below or a malloced array. */
+ Tcl_Size length; /* Number of bytes in string excluding
+ * terminating nul */
+ Tcl_Size spaceAvl; /* Total number of bytes available for the
+ * string and its terminating NULL char. */
+ char staticSpace[TCL_DSTRING_STATIC_SIZE];
+ /* Space to use in common case where string is
+ * small. */
+} Tcl_DString;
+
+#define Tcl_DStringLength(dsPtr) ((dsPtr)->length)
+#define Tcl_DStringValue(dsPtr) ((dsPtr)->string)
+
+/*
+ * Definitions for the maximum number of digits of precision that may be
+ * produced by Tcl_PrintDouble, and the number of bytes of buffer space
+ * required by Tcl_PrintDouble.
+ */
+
+#define TCL_MAX_PREC 17
+#define TCL_DOUBLE_SPACE (TCL_MAX_PREC+10)
+
+/*
+ * Definition for a number of bytes of buffer space sufficient to hold the
+ * string representation of an integer in base 10 (assuming the existence of
+ * 64-bit integers).
+ */
+
+#define TCL_INTEGER_SPACE (3*(int)sizeof(Tcl_WideInt))
+
+/*
+ *----------------------------------------------------------------------------
+ * Type values returned by Tcl_GetNumberFromObj
+ * TCL_NUMBER_INT Representation is a Tcl_WideInt
+ * TCL_NUMBER_BIG Representation is an mp_int
+ * TCL_NUMBER_DOUBLE Representation is a double
+ * TCL_NUMBER_NAN Value is NaN.
+ */
+
+#define TCL_NUMBER_INT 2
+#define TCL_NUMBER_BIG 3
+#define TCL_NUMBER_DOUBLE 4
+#define TCL_NUMBER_NAN 5
+
+/*
+ * Flag values passed to Tcl_ConvertElement.
+ * TCL_DONT_USE_BRACES forces it not to enclose the element in braces, but to
+ * use backslash quoting instead.
+ * TCL_DONT_QUOTE_HASH disables the default quoting of the '#' character. It
+ * is safe to leave the hash unquoted when the element is not the first
+ * element of a list, and this flag can be used by the caller to indicate
+ * that condition.
+ */
+
+#define TCL_DONT_USE_BRACES 1
+#define TCL_DONT_QUOTE_HASH 8
+
+/*
+ * Flags that may be passed to Tcl_GetIndexFromObj.
+ * TCL_EXACT disallows abbreviated strings.
+ * TCL_NULL_OK allows the empty string or NULL to return TCL_OK.
+ * The returned value will be -1;
+ * TCL_INDEX_TEMP_TABLE disallows caching of lookups. A possible use case is
+ * a table that will not live long enough to make it worthwhile.
+ */
+
+#define TCL_EXACT 1
+#define TCL_NULL_OK 32
+#define TCL_INDEX_TEMP_TABLE 64
+
+/*
+ * Flags that may be passed to Tcl_UniCharToUtf.
+ * TCL_COMBINE Combine surrogates
+ */
+
+#if TCL_MAJOR_VERSION > 8
+# define TCL_COMBINE 0x1000000
+#else
+# define TCL_COMBINE 0
+#endif
+/*
+ *----------------------------------------------------------------------------
+ * Flag values passed to Tcl_RecordAndEval, Tcl_EvalObj, Tcl_EvalObjv.
+ * WARNING: these bit choices must not conflict with the bit choices for
+ * evalFlag bits in tclInt.h!
+ *
+ * Meanings:
+ * TCL_NO_EVAL: Just record this command
+ * TCL_EVAL_GLOBAL: Execute script in global namespace
+ * TCL_EVAL_DIRECT: Do not compile this script
+ * TCL_EVAL_INVOKE: Magical Tcl_EvalObjv mode for aliases/ensembles
+ * o Run in iPtr->lookupNsPtr or global namespace
+ * o Cut out of error traces
+ * o Don't reset the flags controlling ensemble
+ * error message rewriting.
+ * TCL_CANCEL_UNWIND: Magical Tcl_CancelEval mode that causes the
+ * stack for the script in progress to be
+ * completely unwound.
+ * TCL_EVAL_NOERR: Do no exception reporting at all, just return
+ * as the caller will report.
+ */
+
+#define TCL_NO_EVAL 0x010000
+#define TCL_EVAL_GLOBAL 0x020000
+#define TCL_EVAL_DIRECT 0x040000
+#define TCL_EVAL_INVOKE 0x080000
+#define TCL_CANCEL_UNWIND 0x100000
+#define TCL_EVAL_NOERR 0x200000
+
+/*
+ * Special freeProc values that may be passed to Tcl_SetResult (see the man
+ * page for details):
+ */
+
+#define TCL_VOLATILE ((Tcl_FreeProc *) 1)
+#define TCL_STATIC ((Tcl_FreeProc *) 0)
+#define TCL_DYNAMIC ((Tcl_FreeProc *) 3)
+
+/*
+ * Flag values passed to variable-related functions.
+ * WARNING: these bit choices must not conflict with the bit choice for
+ * TCL_CANCEL_UNWIND, above.
+ */
+
+#define TCL_GLOBAL_ONLY 1
+#define TCL_NAMESPACE_ONLY 2
+#define TCL_APPEND_VALUE 4
+#define TCL_LIST_ELEMENT 8
+#define TCL_TRACE_READS 0x10
+#define TCL_TRACE_WRITES 0x20
+#define TCL_TRACE_UNSETS 0x40
+#define TCL_TRACE_DESTROYED 0x80
+
+#define TCL_LEAVE_ERR_MSG 0x200
+#define TCL_TRACE_ARRAY 0x800
+/* Indicate the semantics of the result of a trace. */
+#define TCL_TRACE_RESULT_DYNAMIC 0x8000
+#define TCL_TRACE_RESULT_OBJECT 0x10000
+
+/*
+ * Flag values for ensemble commands.
+ */
+
+#define TCL_ENSEMBLE_PREFIX 0x02/* Flag value to say whether to allow
+ * unambiguous prefixes of commands or to
+ * require exact matches for command names. */
+
+/*
+ * Flag values passed to command-related functions.
+ */
+
+#define TCL_TRACE_RENAME 0x2000
+#define TCL_TRACE_DELETE 0x4000
+
+#define TCL_ALLOW_INLINE_COMPILATION 0x20000
+
+/*
+ * Types for linked variables:
+ */
+
+#define TCL_LINK_INT 1
+#define TCL_LINK_DOUBLE 2
+#define TCL_LINK_BOOLEAN 3
+#define TCL_LINK_STRING 4
+#define TCL_LINK_WIDE_INT 5
+#define TCL_LINK_CHAR 6
+#define TCL_LINK_UCHAR 7
+#define TCL_LINK_SHORT 8
+#define TCL_LINK_USHORT 9
+#define TCL_LINK_UINT 10
+#define TCL_LINK_LONG ((sizeof(long) != sizeof(int)) ? TCL_LINK_WIDE_INT : TCL_LINK_INT)
+#define TCL_LINK_ULONG ((sizeof(long) != sizeof(int)) ? TCL_LINK_WIDE_UINT : TCL_LINK_UINT)
+#define TCL_LINK_FLOAT 13
+#define TCL_LINK_WIDE_UINT 14
+#define TCL_LINK_CHARS 15
+#define TCL_LINK_BINARY 16
+#define TCL_LINK_READ_ONLY 0x80
+
+/*
+ *----------------------------------------------------------------------------
+ * Forward declarations of Tcl_HashTable and related types.
+ */
+
+#ifndef TCL_HASH_TYPE
+#if TCL_MAJOR_VERSION > 8
+# define TCL_HASH_TYPE size_t
+#else
+# define TCL_HASH_TYPE unsigned
+#endif
+#endif
+
+typedef struct Tcl_HashKeyType Tcl_HashKeyType;
+typedef struct Tcl_HashTable Tcl_HashTable;
+typedef struct Tcl_HashEntry Tcl_HashEntry;
+
+typedef TCL_HASH_TYPE (Tcl_HashKeyProc) (Tcl_HashTable *tablePtr, void *keyPtr);
+typedef int (Tcl_CompareHashKeysProc) (void *keyPtr, Tcl_HashEntry *hPtr);
+typedef Tcl_HashEntry * (Tcl_AllocHashEntryProc) (Tcl_HashTable *tablePtr,
+ void *keyPtr);
+typedef void (Tcl_FreeHashEntryProc) (Tcl_HashEntry *hPtr);
+
+/*
+ * Structure definition for an entry in a hash table. No-one outside Tcl
+ * should access any of these fields directly; use the macros defined below.
+ */
+
+struct Tcl_HashEntry {
+ Tcl_HashEntry *nextPtr; /* Pointer to next entry in this hash bucket,
+ * or NULL for end of chain. */
+ Tcl_HashTable *tablePtr; /* Pointer to table containing entry. */
+ size_t hash; /* Hash value. */
+ void *clientData; /* Application stores something here with
+ * Tcl_SetHashValue. */
+ union { /* Key has one of these forms: */
+ char *oneWordValue; /* One-word value for key. */
+ Tcl_Obj *objPtr; /* Tcl_Obj * key value. */
+ int words[1]; /* Multiple integer words for key. The actual
+ * size will be as large as necessary for this
+ * table's keys. */
+ char string[1]; /* String for key. The actual size will be as
+ * large as needed to hold the key. */
+ } key; /* MUST BE LAST FIELD IN RECORD!! */
+};
+
+/*
+ * Flags used in Tcl_HashKeyType.
+ *
+ * TCL_HASH_KEY_RANDOMIZE_HASH -
+ * There are some things, pointers for example
+ * which don't hash well because they do not use
+ * the lower bits. If this flag is set then the
+ * hash table will attempt to rectify this by
+ * randomising the bits and then using the upper
+ * N bits as the index into the table.
+ * TCL_HASH_KEY_SYSTEM_HASH - If this flag is set then all memory internally
+ * allocated for the hash table that is not for an
+ * entry will use the system heap.
+ * TCL_HASH_KEY_DIRECT_COMPARE -
+ * Allows fast comparison for hash keys directly
+ * by compare of their key.oneWordValue values,
+ * before call of compareKeysProc (much slower
+ * than a direct compare, so it is speed-up only
+ * flag). Don't use it if keys contain values rather
+ * than pointers.
+ */
+
+#define TCL_HASH_KEY_RANDOMIZE_HASH 0x1
+#define TCL_HASH_KEY_SYSTEM_HASH 0x2
+#define TCL_HASH_KEY_DIRECT_COMPARE 0x4
+
+/*
+ * Structure definition for the methods associated with a hash table key type.
+ */
+
+#define TCL_HASH_KEY_TYPE_VERSION 1
+struct Tcl_HashKeyType {
+ int version; /* Version of the table. If this structure is
+ * extended in future then the version can be
+ * used to distinguish between different
+ * structures. */
+ int flags; /* Flags, see above for details. */
+ Tcl_HashKeyProc *hashKeyProc;
+ /* Calculates a hash value for the key. If
+ * this is NULL then the pointer itself is
+ * used as a hash value. */
+ Tcl_CompareHashKeysProc *compareKeysProc;
+ /* Compares two keys and returns zero if they
+ * do not match, and non-zero if they do. If
+ * this is NULL then the pointers are
+ * compared. */
+ Tcl_AllocHashEntryProc *allocEntryProc;
+ /* Called to allocate memory for a new entry,
+ * i.e. if the key is a string then this could
+ * allocate a single block which contains
+ * enough space for both the entry and the
+ * string. Only the key field of the allocated
+ * Tcl_HashEntry structure needs to be filled
+ * in. If something else needs to be done to
+ * the key, i.e. incrementing a reference
+ * count then that should be done by this
+ * function. If this is NULL then Tcl_Alloc is
+ * used to allocate enough space for a
+ * Tcl_HashEntry and the key pointer is
+ * assigned to key.oneWordValue. */
+ Tcl_FreeHashEntryProc *freeEntryProc;
+ /* Called to free memory associated with an
+ * entry. If something else needs to be done
+ * to the key, i.e. decrementing a reference
+ * count then that should be done by this
+ * function. If this is NULL then Tcl_Free is
+ * used to free the Tcl_HashEntry. */
+};
+
+/*
+ * Structure definition for a hash table. Must be in tcl.h so clients can
+ * allocate space for these structures, but clients should never access any
+ * fields in this structure.
+ */
+
+#define TCL_SMALL_HASH_TABLE 4
+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). */
+ Tcl_Size numBuckets; /* Total number of buckets allocated at
+ * **bucketPtr. */
+ Tcl_Size numEntries; /* Total number of entries present in
+ * table. */
+ Tcl_Size rebuildSize; /* Enlarge table when numEntries gets to be
+ * this large. */
+#if TCL_MAJOR_VERSION > 8
+ size_t mask; /* Mask value used in hashing function. */
+#endif
+ int downShift; /* Shift count used in hashing function.
+ * Designed to use high-order bits of
+ * randomized keys. */
+#if TCL_MAJOR_VERSION < 9
+ int mask; /* Mask value used in hashing function. */
+#endif
+ int keyType; /* Type of keys used in this table. It's
+ * either TCL_CUSTOM_KEYS, 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) (Tcl_HashTable *tablePtr, const char *key);
+ Tcl_HashEntry *(*createProc) (Tcl_HashTable *tablePtr, const char *key,
+ int *newPtr);
+ const Tcl_HashKeyType *typePtr;
+ /* Type of the keys used in the
+ * 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. */
+ Tcl_Size nextIndex; /* Index of next bucket to be enumerated after
+ * present one. */
+ Tcl_HashEntry *nextEntryPtr;/* Next entry to be enumerated in the current
+ * bucket. */
+} Tcl_HashSearch;
+
+/*
+ * Acceptable key types for hash tables:
+ *
+ * TCL_STRING_KEYS: The keys are strings, they are copied into the
+ * entry.
+ * TCL_ONE_WORD_KEYS: The keys are pointers, the pointer is stored
+ * in the entry.
+ * TCL_CUSTOM_TYPE_KEYS: The keys are arbitrary types which are copied
+ * into the entry.
+ * TCL_CUSTOM_PTR_KEYS: The keys are pointers to arbitrary types, the
+ * pointer is stored in the entry.
+ *
+ * While maintaining binary compatibility the above have to be distinct values
+ * as they are used to differentiate between old versions of the hash table
+ * which don't have a typePtr and new ones which do. Once binary compatibility
+ * is discarded in favour of making more wide spread changes TCL_STRING_KEYS
+ * can be the same as TCL_CUSTOM_TYPE_KEYS, and TCL_ONE_WORD_KEYS can be the
+ * same as TCL_CUSTOM_PTR_KEYS because they simply determine how the key is
+ * accessed from the entry and not the behaviour.
+ */
+
+#define TCL_STRING_KEYS (0)
+#define TCL_ONE_WORD_KEYS (1)
+#define TCL_CUSTOM_TYPE_KEYS (-2)
+#define TCL_CUSTOM_PTR_KEYS (-1)
+
+/*
+ * Structure definition for information used to keep track of searches through
+ * dictionaries. These fields should not be accessed by code outside
+ * tclDictObj.c
+ */
+
+typedef struct {
+ void *next; /* Search position for underlying hash
+ * table. */
+ TCL_HASH_TYPE epoch; /* Epoch marker for dictionary being searched,
+ * or 0 if search has terminated. */
+ Tcl_Dict dictionaryPtr; /* Reference to dictionary being searched. */
+} Tcl_DictSearch;
+
+/*
+ *----------------------------------------------------------------------------
+ * 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; /* Function to call to service this event. */
+ struct Tcl_Event *nextPtr; /* Next in list of pending events, or NULL. */
+};
+
+/*
+ * Positions to pass to Tcl_QueueEvent/Tcl_ThreadQueueEvent:
+ */
+
+typedef enum {
+ TCL_QUEUE_TAIL, TCL_QUEUE_HEAD, TCL_QUEUE_MARK,
+ TCL_QUEUE_ALERT_IF_EMPTY=4
+} 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.
+ */
+
+typedef struct Tcl_Time {
+#if TCL_MAJOR_VERSION > 8
+ long long sec; /* Seconds. */
+#else
+ long sec; /* Seconds. */
+#endif
+#if defined(_CYGWIN_) && TCL_MAJOR_VERSION > 8
+ int usec; /* Microseconds. */
+#else
+ long usec; /* Microseconds. */
+#endif
+} Tcl_Time;
+
+typedef void (Tcl_SetTimerProc) (const Tcl_Time *timePtr);
+typedef int (Tcl_WaitForEventProc) (const Tcl_Time *timePtr);
+
+/*
+ * TIP #233 (Virtualized Time)
+ */
+
+typedef void (Tcl_GetTimeProc) (Tcl_Time *timebuf, void *clientData);
+typedef void (Tcl_ScaleTimeProc) (Tcl_Time *timebuf, void *clientData);
+
+/*
+ *----------------------------------------------------------------------------
+ * 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)
+
+/*
+ * Bits passed to Tcl_DriverClose2Proc to indicate which side of a channel
+ * should be closed.
+ */
+
+#define TCL_CLOSE_READ (1<<1)
+#define TCL_CLOSE_WRITE (1<<2)
+
+/*
+ * Value to use as the closeProc for a channel that supports the close2Proc
+ * interface.
+ */
+
+#if TCL_MAJOR_VERSION > 8
+# define TCL_CLOSE2PROC NULL
+#else
+# define TCL_CLOSE2PROC ((void *) 1)
+#endif
+
+/*
+ * Channel version tag. This was introduced in 8.3.2/8.4.
+ */
+
+#define TCL_CHANNEL_VERSION_5 ((Tcl_ChannelTypeVersion) 0x5)
+
+/*
+ * TIP #218: Channel Actions, Ids for Tcl_DriverThreadActionProc.
+ */
+
+#define TCL_CHANNEL_THREAD_INSERT (0)
+#define TCL_CHANNEL_THREAD_REMOVE (1)
+
+/*
+ * Typedefs for the various operations in a channel type:
+ */
+
+typedef int (Tcl_DriverBlockModeProc) (void *instanceData, int mode);
+typedef void Tcl_DriverCloseProc;
+typedef int (Tcl_DriverClose2Proc) (void *instanceData,
+ Tcl_Interp *interp, int flags);
+typedef int (Tcl_DriverInputProc) (void *instanceData, char *buf,
+ int toRead, int *errorCodePtr);
+typedef int (Tcl_DriverOutputProc) (void *instanceData,
+ const char *buf, int toWrite, int *errorCodePtr);
+typedef void Tcl_DriverSeekProc;
+typedef int (Tcl_DriverSetOptionProc) (void *instanceData,
+ Tcl_Interp *interp, const char *optionName,
+ const char *value);
+typedef int (Tcl_DriverGetOptionProc) (void *instanceData,
+ Tcl_Interp *interp, const char *optionName,
+ Tcl_DString *dsPtr);
+typedef void (Tcl_DriverWatchProc) (void *instanceData, int mask);
+typedef int (Tcl_DriverGetHandleProc) (void *instanceData,
+ int direction, void **handlePtr);
+typedef int (Tcl_DriverFlushProc) (void *instanceData);
+typedef int (Tcl_DriverHandlerProc) (void *instanceData,
+ int interestMask);
+typedef long long (Tcl_DriverWideSeekProc) (void *instanceData,
+ long long offset, int mode, int *errorCodePtr);
+/*
+ * TIP #218, Channel Thread Actions
+ */
+typedef void (Tcl_DriverThreadActionProc) (void *instanceData,
+ int action);
+/*
+ * TIP #208, File Truncation (etc.)
+ */
+typedef int (Tcl_DriverTruncateProc) (void *instanceData,
+ long long length);
+
+/*
+ * 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.
+ *
+ * It is recommend that the Tcl_Channel* functions are used to access elements
+ * of this structure, instead of direct accessing.
+ */
+
+typedef struct Tcl_ChannelType {
+ const char *typeName; /* The name of the channel type in Tcl
+ * commands. This storage is owned by channel
+ * type. */
+ Tcl_ChannelTypeVersion version;
+ /* Version of the channel type. */
+ void *closeProc; /* Not used any more. */
+ Tcl_DriverInputProc *inputProc;
+ /* Function to call for input on channel. */
+ Tcl_DriverOutputProc *outputProc;
+ /* Function to call for output on channel. */
+ void *seekProc; /* Not used any more. */
+ 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_DriverClose2Proc *close2Proc;
+ /* Function to call to close the channel if
+ * the device supports closing the read &
+ * write sides independently. */
+ Tcl_DriverBlockModeProc *blockModeProc;
+ /* Set blocking mode for the raw channel. May
+ * be NULL. */
+ Tcl_DriverFlushProc *flushProc;
+ /* Function to call to flush a channel. May be
+ * NULL. */
+ Tcl_DriverHandlerProc *handlerProc;
+ /* Function to call to handle a channel event.
+ * This will be passed up the stacked channel
+ * chain. */
+ Tcl_DriverWideSeekProc *wideSeekProc;
+ /* Function to call to seek on the channel
+ * which can handle 64-bit offsets. May be
+ * NULL, and must be NULL if seekProc is
+ * NULL. */
+ Tcl_DriverThreadActionProc *threadActionProc;
+ /* Function to call to notify the driver of
+ * thread specific activity for a channel. May
+ * be NULL. */
+ Tcl_DriverTruncateProc *truncateProc;
+ /* Function to call to truncate the underlying
+ * file to a particular length. May be NULL if
+ * the channel does not support truncation. */
+} 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 function 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;
+
+/*
+ * The following structure is used to pass glob type data amongst the various
+ * glob routines and Tcl_FSMatchInDirectory.
+ */
+
+typedef struct Tcl_GlobTypeData {
+ int type; /* Corresponds to bcdpfls as in 'find -t'. */
+ int perm; /* Corresponds to file permissions. */
+ Tcl_Obj *macType; /* Acceptable Mac type. */
+ Tcl_Obj *macCreator; /* Acceptable Mac creator. */
+} Tcl_GlobTypeData;
+
+/*
+ * Type and permission definitions for glob command.
+ */
+
+#define TCL_GLOB_TYPE_BLOCK (1<<0)
+#define TCL_GLOB_TYPE_CHAR (1<<1)
+#define TCL_GLOB_TYPE_DIR (1<<2)
+#define TCL_GLOB_TYPE_PIPE (1<<3)
+#define TCL_GLOB_TYPE_FILE (1<<4)
+#define TCL_GLOB_TYPE_LINK (1<<5)
+#define TCL_GLOB_TYPE_SOCK (1<<6)
+#define TCL_GLOB_TYPE_MOUNT (1<<7)
+
+#define TCL_GLOB_PERM_RONLY (1<<0)
+#define TCL_GLOB_PERM_HIDDEN (1<<1)
+#define TCL_GLOB_PERM_R (1<<2)
+#define TCL_GLOB_PERM_W (1<<3)
+#define TCL_GLOB_PERM_X (1<<4)
+
+/*
+ * Flags for the unload callback function.
+ */
+
+#define TCL_UNLOAD_DETACH_FROM_INTERPRETER (1<<0)
+#define TCL_UNLOAD_DETACH_FROM_PROCESS (1<<1)
+
+/*
+ * Typedefs for the various filesystem operations:
+ */
+
+typedef int (Tcl_FSStatProc) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf);
+typedef int (Tcl_FSAccessProc) (Tcl_Obj *pathPtr, int mode);
+typedef Tcl_Channel (Tcl_FSOpenFileChannelProc) (Tcl_Interp *interp,
+ Tcl_Obj *pathPtr, int mode, int permissions);
+typedef int (Tcl_FSMatchInDirectoryProc) (Tcl_Interp *interp, Tcl_Obj *result,
+ Tcl_Obj *pathPtr, const char *pattern, Tcl_GlobTypeData *types);
+typedef Tcl_Obj * (Tcl_FSGetCwdProc) (Tcl_Interp *interp);
+typedef int (Tcl_FSChdirProc) (Tcl_Obj *pathPtr);
+typedef int (Tcl_FSLstatProc) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf);
+typedef int (Tcl_FSCreateDirectoryProc) (Tcl_Obj *pathPtr);
+typedef int (Tcl_FSDeleteFileProc) (Tcl_Obj *pathPtr);
+typedef int (Tcl_FSCopyDirectoryProc) (Tcl_Obj *srcPathPtr,
+ Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr);
+typedef int (Tcl_FSCopyFileProc) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr);
+typedef int (Tcl_FSRemoveDirectoryProc) (Tcl_Obj *pathPtr, int recursive,
+ Tcl_Obj **errorPtr);
+typedef int (Tcl_FSRenameFileProc) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr);
+typedef void (Tcl_FSUnloadFileProc) (Tcl_LoadHandle loadHandle);
+typedef Tcl_Obj * (Tcl_FSListVolumesProc) (void);
+/* We have to declare the utime structure here. */
+struct utimbuf;
+typedef int (Tcl_FSUtimeProc) (Tcl_Obj *pathPtr, struct utimbuf *tval);
+typedef int (Tcl_FSNormalizePathProc) (Tcl_Interp *interp, Tcl_Obj *pathPtr,
+ int nextCheckpoint);
+typedef int (Tcl_FSFileAttrsGetProc) (Tcl_Interp *interp, int index,
+ Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef);
+typedef const char *const * (Tcl_FSFileAttrStringsProc) (Tcl_Obj *pathPtr,
+ Tcl_Obj **objPtrRef);
+typedef int (Tcl_FSFileAttrsSetProc) (Tcl_Interp *interp, int index,
+ Tcl_Obj *pathPtr, Tcl_Obj *objPtr);
+typedef Tcl_Obj * (Tcl_FSLinkProc) (Tcl_Obj *pathPtr, Tcl_Obj *toPtr,
+ int linkType);
+typedef int (Tcl_FSLoadFileProc) (Tcl_Interp *interp, Tcl_Obj *pathPtr,
+ Tcl_LoadHandle *handlePtr, Tcl_FSUnloadFileProc **unloadProcPtr);
+typedef int (Tcl_FSPathInFilesystemProc) (Tcl_Obj *pathPtr,
+ void **clientDataPtr);
+typedef Tcl_Obj * (Tcl_FSFilesystemPathTypeProc) (Tcl_Obj *pathPtr);
+typedef Tcl_Obj * (Tcl_FSFilesystemSeparatorProc) (Tcl_Obj *pathPtr);
+#define Tcl_FSFreeInternalRepProc Tcl_FreeProc
+typedef void *(Tcl_FSDupInternalRepProc) (void *clientData);
+typedef Tcl_Obj * (Tcl_FSInternalToNormalizedProc) (void *clientData);
+typedef void *(Tcl_FSCreateInternalRepProc) (Tcl_Obj *pathPtr);
+
+typedef struct Tcl_FSVersion_ *Tcl_FSVersion;
+
+/*
+ *----------------------------------------------------------------------------
+ * Data structures related to hooking into the filesystem
+ */
+
+/*
+ * Filesystem version tag. This was introduced in 8.4.
+ */
+
+#define TCL_FILESYSTEM_VERSION_1 ((Tcl_FSVersion) 0x1)
+
+/*
+ * struct Tcl_Filesystem:
+ *
+ * One such structure exists for each type (kind) of filesystem. It collects
+ * together the functions that form the interface for a particulr the
+ * filesystem. Tcl always accesses the filesystem through one of these
+ * structures.
+ *
+ * Not all entries need be non-NULL; any which are NULL are simply ignored.
+ * However, a complete filesystem should provide all of these functions. The
+ * explanations in the structure show the importance of each function.
+ */
+
+typedef struct Tcl_Filesystem {
+ const char *typeName; /* The name of the filesystem. */
+ Tcl_Size structureLength; /* Length of this structure, so future binary
+ * compatibility can be assured. */
+ Tcl_FSVersion version; /* Version of the filesystem type. */
+ Tcl_FSPathInFilesystemProc *pathInFilesystemProc;
+ /* Determines whether the pathname is in this
+ * filesystem. This is the most important
+ * filesystem function. */
+ Tcl_FSDupInternalRepProc *dupInternalRepProc;
+ /* Duplicates the internal handle of the node.
+ * If it is NULL, the filesystem is less
+ * performant. */
+ Tcl_FSFreeInternalRepProc *freeInternalRepProc;
+ /* Frees the internal handle of the node. NULL
+ * only if there is no need to free resources
+ * used for the internal handle. */
+ Tcl_FSInternalToNormalizedProc *internalToNormalizedProc;
+ /* Converts the internal handle to a normalized
+ * path. NULL if the filesystem creates nodes
+ * having no pathname. */
+ Tcl_FSCreateInternalRepProc *createInternalRepProc;
+ /* Creates an internal handle for a pathname.
+ * May be NULL if pathnames have no internal
+ * handle or if pathInFilesystemProc always
+ * immediately creates an internal
+ * representation for pathnames in the
+ * filesystem. */
+ Tcl_FSNormalizePathProc *normalizePathProc;
+ /* Normalizes a path. Should be implemented if
+ * the filesystems supports multiple paths to
+ * the same node. */
+ Tcl_FSFilesystemPathTypeProc *filesystemPathTypeProc;
+ /* Determines the type of a path in this
+ * filesystem. May be NULL. */
+ Tcl_FSFilesystemSeparatorProc *filesystemSeparatorProc;
+ /* Produces the separator character(s) for this
+ * filesystem. Must not be NULL. */
+ Tcl_FSStatProc *statProc; /* Called by 'Tcl_FSStat()'. Provided by any
+ * reasonable filesystem. */
+ Tcl_FSAccessProc *accessProc;
+ /* Called by 'Tcl_FSAccess()'. Implemented by
+ * any reasonable filesystem. */
+ Tcl_FSOpenFileChannelProc *openFileChannelProc;
+ /* Called by 'Tcl_FSOpenFileChannel()'.
+ * Provided by any reasonable filesystem. */
+ Tcl_FSMatchInDirectoryProc *matchInDirectoryProc;
+ /* Called by 'Tcl_FSMatchInDirectory()'. NULL
+ * if the filesystem does not support glob or
+ * recursive copy. */
+ Tcl_FSUtimeProc *utimeProc; /* Called by 'Tcl_FSUtime()', by 'file
+ * mtime' to set (not read) times, 'file
+ * atime', and the open-r/open-w/fcopy variant
+ * of 'file copy'. */
+ Tcl_FSLinkProc *linkProc; /* Called by 'Tcl_FSLink()'. NULL if reading or
+ * creating links is not supported. */
+ Tcl_FSListVolumesProc *listVolumesProc;
+ /* Lists filesystem volumes added by this
+ * filesystem. NULL if the filesystem does not
+ * use volumes. */
+ Tcl_FSFileAttrStringsProc *fileAttrStringsProc;
+ /* List all valid attributes strings. NULL if
+ * the filesystem does not support the 'file
+ * attributes' command. Can be used to attach
+ * arbitrary additional data to files in a
+ * filesystem. */
+ Tcl_FSFileAttrsGetProc *fileAttrsGetProc;
+ /* Called by 'Tcl_FSFileAttrsGet()' and by
+ * 'file attributes'. */
+ Tcl_FSFileAttrsSetProc *fileAttrsSetProc;
+ /* Called by 'Tcl_FSFileAttrsSet()' and by
+ * 'file attributes'. */
+ Tcl_FSCreateDirectoryProc *createDirectoryProc;
+ /* Called by 'Tcl_FSCreateDirectory()'. May be
+ * NULL if the filesystem is read-only. */
+ Tcl_FSRemoveDirectoryProc *removeDirectoryProc;
+ /* Called by 'Tcl_FSRemoveDirectory()'. May be
+ * NULL if the filesystem is read-only. */
+ Tcl_FSDeleteFileProc *deleteFileProc;
+ /* Called by 'Tcl_FSDeleteFile()' May be NULL
+ * if the filesystem is is read-only. */
+ Tcl_FSCopyFileProc *copyFileProc;
+ /* Called by 'Tcl_FSCopyFile()'. If NULL, for
+ * a copy operation at the script level (not
+ * C) Tcl uses open-r, open-w and fcopy. */
+ Tcl_FSRenameFileProc *renameFileProc;
+ /* Called by 'Tcl_FSRenameFile()'. If NULL, for
+ * a rename operation at the script level (not
+ * C) Tcl performs a copy operation followed
+ * by a delete operation. */
+ Tcl_FSCopyDirectoryProc *copyDirectoryProc;
+ /* Called by 'Tcl_FSCopyDirectory()'. If NULL,
+ * for a copy operation at the script level
+ * (not C) Tcl recursively creates directories
+ * and copies files. */
+ Tcl_FSLstatProc *lstatProc; /* Called by 'Tcl_FSLstat()'. If NULL, Tcl
+ * attempts to use 'statProc' instead. */
+ Tcl_FSLoadFileProc *loadFileProc;
+ /* Called by 'Tcl_FSLoadFile()'. If NULL, Tcl
+ * performs a copy to a temporary file in the
+ * native filesystem and then calls
+ * Tcl_FSLoadFile() on that temporary copy. */
+ Tcl_FSGetCwdProc *getCwdProc;
+ /* Called by 'Tcl_FSGetCwd()'. Normally NULL.
+ * Usually only called once: If 'getcwd' is
+ * called before 'chdir' is ever called. */
+ Tcl_FSChdirProc *chdirProc; /* Called by 'Tcl_FSChdir()'. For a virtual
+ * filesystem, chdirProc just returns zero
+ * (success) if the pathname is a valid
+ * directory, and some other value otherwise.
+ * For A real filesystem, chdirProc performs
+ * the correct action, e.g. calls the system
+ * 'chdir' function. If not implemented, then
+ * 'cd' and 'pwd' fail for a pathname in this
+ * filesystem. On success Tcl stores the
+ * pathname for use by GetCwd. If NULL, Tcl
+ * performs records the pathname as the new
+ * current directory if it passes a series of
+ * directory access checks. */
+} Tcl_Filesystem;
+
+/*
+ * The following definitions are used as values for the 'linkAction' flag to
+ * Tcl_FSLink, or the linkProc of any filesystem. Any combination of flags can
+ * be given. For link creation, the linkProc should create a link which
+ * matches any of the types given.
+ *
+ * TCL_CREATE_SYMBOLIC_LINK - Create a symbolic or soft link.
+ * TCL_CREATE_HARD_LINK - Create a hard link.
+ */
+
+#define TCL_CREATE_SYMBOLIC_LINK 0x01
+#define TCL_CREATE_HARD_LINK 0x02
+
+/*
+ *----------------------------------------------------------------------------
+ * The following structure represents the Notifier functions that you can
+ * override with the Tcl_SetNotifier call.
+ */
+
+typedef struct Tcl_NotifierProcs {
+ Tcl_SetTimerProc *setTimerProc;
+ Tcl_WaitForEventProc *waitForEventProc;
+ Tcl_CreateFileHandlerProc *createFileHandlerProc;
+ Tcl_DeleteFileHandlerProc *deleteFileHandlerProc;
+ Tcl_InitNotifierProc *initNotifierProc;
+ Tcl_FinalizeNotifierProc *finalizeNotifierProc;
+ Tcl_AlertNotifierProc *alertNotifierProc;
+ Tcl_ServiceModeHookProc *serviceModeHookProc;
+} Tcl_NotifierProcs;
+
+/*
+ *----------------------------------------------------------------------------
+ * The following data structures and declarations are for the new Tcl parser.
+ *
+ * For each word of a command, and for each piece of a word such as a variable
+ * reference, one of the following structures is created to describe the
+ * token.
+ */
+
+typedef struct Tcl_Token {
+ int type; /* Type of token, such as TCL_TOKEN_WORD; see
+ * below for valid types. */
+ const char *start; /* First character in token. */
+ Tcl_Size size; /* Number of bytes in token. */
+ Tcl_Size numComponents; /* If this token is composed of other tokens,
+ * this field tells how many of them there are
+ * (including components of components, etc.).
+ * The component tokens immediately follow
+ * this one. */
+} Tcl_Token;
+
+/*
+ * Type values defined for Tcl_Token structures. These values are defined as
+ * mask bits so that it's easy to check for collections of types.
+ *
+ * TCL_TOKEN_WORD - The token describes one word of a command,
+ * from the first non-blank character of the word
+ * (which may be " or {) up to but not including
+ * the space, semicolon, or bracket that
+ * terminates the word. NumComponents counts the
+ * total number of sub-tokens that make up the
+ * word. This includes, for example, sub-tokens
+ * of TCL_TOKEN_VARIABLE tokens.
+ * TCL_TOKEN_SIMPLE_WORD - This token is just like TCL_TOKEN_WORD except
+ * that the word is guaranteed to consist of a
+ * single TCL_TOKEN_TEXT sub-token.
+ * TCL_TOKEN_TEXT - The token describes a range of literal text
+ * that is part of a word. NumComponents is
+ * always 0.
+ * TCL_TOKEN_BS - The token describes a backslash sequence that
+ * must be collapsed. NumComponents is always 0.
+ * TCL_TOKEN_COMMAND - The token describes a command whose result
+ * must be substituted into the word. The token
+ * includes the enclosing brackets. NumComponents
+ * is always 0.
+ * TCL_TOKEN_VARIABLE - The token describes a variable substitution,
+ * including the dollar sign, variable name, and
+ * array index (if there is one) up through the
+ * right parentheses. NumComponents tells how
+ * many additional tokens follow to represent the
+ * variable name. The first token will be a
+ * TCL_TOKEN_TEXT token that describes the
+ * variable name. If the variable is an array
+ * reference then there will be one or more
+ * additional tokens, of type TCL_TOKEN_TEXT,
+ * TCL_TOKEN_BS, TCL_TOKEN_COMMAND, and
+ * TCL_TOKEN_VARIABLE, that describe the array
+ * index; numComponents counts the total number
+ * of nested tokens that make up the variable
+ * reference, including sub-tokens of
+ * TCL_TOKEN_VARIABLE tokens.
+ * TCL_TOKEN_SUB_EXPR - The token describes one subexpression of an
+ * expression, from the first non-blank character
+ * of the subexpression up to but not including
+ * the space, brace, or bracket that terminates
+ * the subexpression. NumComponents counts the
+ * total number of following subtokens that make
+ * up the subexpression; this includes all
+ * subtokens for any nested TCL_TOKEN_SUB_EXPR
+ * tokens. For example, a numeric value used as a
+ * primitive operand is described by a
+ * TCL_TOKEN_SUB_EXPR token followed by a
+ * TCL_TOKEN_TEXT token. A binary subexpression
+ * is described by a TCL_TOKEN_SUB_EXPR token
+ * followed by the TCL_TOKEN_OPERATOR token for
+ * the operator, then TCL_TOKEN_SUB_EXPR tokens
+ * for the left then the right operands.
+ * TCL_TOKEN_OPERATOR - The token describes one expression operator.
+ * An operator might be the name of a math
+ * function such as "abs". A TCL_TOKEN_OPERATOR
+ * token is always preceded by one
+ * TCL_TOKEN_SUB_EXPR token for the operator's
+ * subexpression, and is followed by zero or more
+ * TCL_TOKEN_SUB_EXPR tokens for the operator's
+ * operands. NumComponents is always 0.
+ * TCL_TOKEN_EXPAND_WORD - This token is just like TCL_TOKEN_WORD except
+ * that it marks a word that began with the
+ * literal character prefix "{*}". This word is
+ * marked to be expanded - that is, broken into
+ * words after substitution is complete.
+ */
+
+#define TCL_TOKEN_WORD 1
+#define TCL_TOKEN_SIMPLE_WORD 2
+#define TCL_TOKEN_TEXT 4
+#define TCL_TOKEN_BS 8
+#define TCL_TOKEN_COMMAND 16
+#define TCL_TOKEN_VARIABLE 32
+#define TCL_TOKEN_SUB_EXPR 64
+#define TCL_TOKEN_OPERATOR 128
+#define TCL_TOKEN_EXPAND_WORD 256
+
+/*
+ * Parsing error types. On any parsing error, one of these values will be
+ * stored in the error field of the Tcl_Parse structure defined below.
+ */
+
+#define TCL_PARSE_SUCCESS 0
+#define TCL_PARSE_QUOTE_EXTRA 1
+#define TCL_PARSE_BRACE_EXTRA 2
+#define TCL_PARSE_MISSING_BRACE 3
+#define TCL_PARSE_MISSING_BRACKET 4
+#define TCL_PARSE_MISSING_PAREN 5
+#define TCL_PARSE_MISSING_QUOTE 6
+#define TCL_PARSE_MISSING_VAR_BRACE 7
+#define TCL_PARSE_SYNTAX 8
+#define TCL_PARSE_BAD_NUMBER 9
+
+/*
+ * A structure of the following type is filled in by Tcl_ParseCommand. It
+ * describes a single command parsed from an input string.
+ */
+
+#define NUM_STATIC_TOKENS 20
+
+typedef struct Tcl_Parse {
+ const char *commentStart; /* Pointer to # that begins the first of one
+ * or more comments preceding the command. */
+ Tcl_Size commentSize; /* Number of bytes in comments (up through
+ * newline character that terminates the last
+ * comment). If there were no comments, this
+ * field is 0. */
+ const char *commandStart; /* First character in first word of
+ * command. */
+ Tcl_Size commandSize; /* Number of bytes in command, including first
+ * character of first word, up through the
+ * terminating newline, close bracket, or
+ * semicolon. */
+ Tcl_Size numWords; /* Total number of words in command. May be
+ * 0. */
+ Tcl_Token *tokenPtr; /* Pointer to first token representing the
+ * words of the command. Initially points to
+ * staticTokens, but may change to point to
+ * malloc-ed space if command exceeds space in
+ * staticTokens. */
+ Tcl_Size numTokens; /* Total number of tokens in command. */
+ Tcl_Size tokensAvailable; /* Total number of tokens available at
+ * *tokenPtr. */
+ int errorType; /* One of the parsing error types defined
+ * above. */
+#if TCL_MAJOR_VERSION > 8
+ int incomplete; /* This field is set to 1 by Tcl_ParseCommand
+ * if the command appears to be incomplete.
+ * This information is used by
+ * Tcl_CommandComplete. */
+#endif
+
+ /*
+ * The fields below are intended only for the private use of the parser.
+ * They should not be used by functions that invoke Tcl_ParseCommand.
+ */
+
+ const char *string; /* The original command string passed to
+ * Tcl_ParseCommand. */
+ const char *end; /* Points to the character just after the last
+ * one in the command string. */
+ Tcl_Interp *interp; /* Interpreter to use for error reporting, or
+ * NULL. */
+ const char *term; /* Points to character in string that
+ * terminated most recent token. Filled in by
+ * ParseTokens. If an error occurs, points to
+ * beginning of region where the error
+ * occurred (e.g. the open brace if the close
+ * brace is missing). */
+#if TCL_MAJOR_VERSION < 9
+ int incomplete;
+#endif
+ Tcl_Token staticTokens[NUM_STATIC_TOKENS];
+ /* Initial space for tokens for command. This
+ * space should be large enough to accommodate
+ * most commands; dynamic space is allocated
+ * for very large commands that don't fit
+ * here. */
+} Tcl_Parse;
+
+/*
+ *----------------------------------------------------------------------------
+ * The following structure represents a user-defined encoding. It collects
+ * together all the functions that are used by the specific encoding.
+ */
+
+typedef struct Tcl_EncodingType {
+ const char *encodingName; /* The name of the encoding, e.g. "euc-jp".
+ * This name is the unique key for this
+ * encoding type. */
+ Tcl_EncodingConvertProc *toUtfProc;
+ /* Function to convert from external encoding
+ * into UTF-8. */
+ Tcl_EncodingConvertProc *fromUtfProc;
+ /* Function to convert from UTF-8 into
+ * external encoding. */
+ Tcl_FreeProc *freeProc; /* If non-NULL, function to call when this
+ * encoding is deleted. */
+ void *clientData; /* Arbitrary value associated with encoding
+ * type. Passed to conversion functions. */
+ Tcl_Size nullSize; /* Number of zero bytes that signify
+ * end-of-string in this encoding. This number
+ * is used to determine the source string
+ * length when the srcLen argument is
+ * negative. Must be 1, 2, or 4. */
+} Tcl_EncodingType;
+
+/*
+ * The following definitions are used as values for the conversion control
+ * flags argument when converting text from one character set to another:
+ *
+ * TCL_ENCODING_START - Signifies that the source buffer is the first
+ * block in a (potentially multi-block) input
+ * stream. Tells the conversion function to reset
+ * to an initial state and perform any
+ * initialization that needs to occur before the
+ * first byte is converted. If the source buffer
+ * contains the entire input stream to be
+ * converted, this flag should be set.
+ * TCL_ENCODING_END - Signifies that the source buffer is the last
+ * block in a (potentially multi-block) input
+ * stream. Tells the conversion routine to
+ * perform any finalization that needs to occur
+ * after the last byte is converted and then to
+ * reset to an initial state. If the source
+ * buffer contains the entire input stream to be
+ * converted, this flag should be set.
+ * TCL_ENCODING_STOPONERROR - Not used any more.
+ * TCL_ENCODING_NO_TERMINATE - If set, Tcl_ExternalToUtf does not append a
+ * terminating NUL byte. Since it does not need
+ * an extra byte for a terminating NUL, it fills
+ * all dstLen bytes with encoded UTF-8 content if
+ * needed. If clear, a byte is reserved in the
+ * dst space for NUL termination, and a
+ * terminating NUL is appended.
+ * TCL_ENCODING_CHAR_LIMIT - If set and dstCharsPtr is not NULL, then
+ * Tcl_ExternalToUtf takes the initial value of
+ * *dstCharsPtr as a limit of the maximum number
+ * of chars to produce in the encoded UTF-8
+ * content. Otherwise, the number of chars
+ * produced is controlled only by other limiting
+ * factors.
+ * TCL_ENCODING_PROFILE_* - Mutually exclusive encoding profile ids. Note
+ * these are bit masks.
+ *
+ * NOTE: THESE BIT DEFINITIONS SHOULD NOT OVERLAP WITH INTERNAL USE BITS
+ * DEFINED IN tclEncoding.c (ENCODING_INPUT et al). Be cognizant of this
+ * when adding bits.
+ */
+
+#define TCL_ENCODING_START 0x01
+#define TCL_ENCODING_END 0x02
+#if TCL_MAJOR_VERSION > 8
+# define TCL_ENCODING_STOPONERROR 0x0 /* Not used any more */
+#else
+# define TCL_ENCODING_STOPONERROR 0x04
+#endif
+#define TCL_ENCODING_NO_TERMINATE 0x08
+#define TCL_ENCODING_CHAR_LIMIT 0x10
+/* Internal use bits, do not define bits in this space. See above comment */
+#define TCL_ENCODING_INTERNAL_USE_MASK 0xFF00
+/*
+ * Reserve top byte for profile values (disjoint, not a mask). In case of
+ * changes, ensure ENCODING_PROFILE_* macros in tclInt.h are modified if
+ * necessary.
+ */
+#define TCL_ENCODING_PROFILE_STRICT TCL_ENCODING_STOPONERROR
+#define TCL_ENCODING_PROFILE_TCL8 0x01000000
+#define TCL_ENCODING_PROFILE_REPLACE 0x02000000
+
+/*
+ * The following definitions are the error codes returned by the conversion
+ * routines:
+ *
+ * TCL_OK - All characters were converted.
+ * TCL_CONVERT_NOSPACE - The output buffer would not have been large
+ * enough for all of the converted data; as many
+ * characters as could fit were converted though.
+ * TCL_CONVERT_MULTIBYTE - The last few bytes in the source string were
+ * the beginning of a multibyte sequence, but
+ * more bytes were needed to complete this
+ * sequence. A subsequent call to the conversion
+ * routine should pass the beginning of this
+ * unconverted sequence plus additional bytes
+ * from the source stream to properly convert the
+ * formerly split-up multibyte sequence.
+ * TCL_CONVERT_SYNTAX - The source stream contained an invalid
+ * character sequence. This may occur if the
+ * input stream has been damaged or if the input
+ * encoding method was misidentified.
+ * TCL_CONVERT_UNKNOWN - The source string contained a character that
+ * could not be represented in the target
+ * encoding.
+ */
+
+#define TCL_CONVERT_MULTIBYTE (-1)
+#define TCL_CONVERT_SYNTAX (-2)
+#define TCL_CONVERT_UNKNOWN (-3)
+#define TCL_CONVERT_NOSPACE (-4)
+
+/*
+ * The maximum number of bytes that are necessary to represent a single
+ * Unicode character in UTF-8. The valid values are 3 and 4. If > 3,
+ * then Tcl_UniChar must be 4-bytes in size (UCS-4) (the default). If == 3,
+ * then Tcl_UniChar must be 2-bytes in size (UTF-16). Since Tcl 9.0, UCS-4
+ * mode is the default and recommended mode.
+ */
+
+#ifndef TCL_UTF_MAX
+# if defined(BUILD_tcl) || TCL_MAJOR_VERSION > 8
+# define TCL_UTF_MAX 4
+# else
+# define TCL_UTF_MAX 3
+# endif
+#endif
+
+/*
+ * This represents a Unicode character. Any changes to this should also be
+ * reflected in regcustom.h.
+ */
+
+#if TCL_UTF_MAX == 4 && TCL_MAJOR_VERSION > 8
+ /*
+ * int isn't 100% accurate as it should be a strict 4-byte value
+ * (perhaps int32_t). ILP64/SILP64 systems may have troubles. The
+ * size of this value must be reflected correctly in regcustom.h.
+ */
+typedef int Tcl_UniChar;
+#elif TCL_UTF_MAX == 3 && !defined(BUILD_tcl)
+typedef unsigned short Tcl_UniChar;
+#else
+# error "This TCL_UTF_MAX value is not supported"
+#endif
+
+/*
+ *----------------------------------------------------------------------------
+ * TIP #59: The following structure is used in calls 'Tcl_RegisterConfig' to
+ * provide the system with the embedded configuration data.
+ */
+
+typedef struct Tcl_Config {
+ const char *key; /* Configuration key to register. ASCII
+ * encoded, thus UTF-8. */
+ const char *value; /* The value associated with the key. System
+ * encoding. */
+} Tcl_Config;
+
+/*
+ *----------------------------------------------------------------------------
+ * Flags for TIP#143 limits, detailing which limits are active in an
+ * interpreter. Used for Tcl_{Add,Remove}LimitHandler type argument.
+ */
+
+#define TCL_LIMIT_COMMANDS 0x01
+#define TCL_LIMIT_TIME 0x02
+
+/*
+ * Structure containing information about a limit handler to be called when a
+ * command- or time-limit is exceeded by an interpreter.
+ */
+
+typedef void (Tcl_LimitHandlerProc) (void *clientData, Tcl_Interp *interp);
+#if TCL_MAJOR_VERSION > 8
+#define Tcl_LimitHandlerDeleteProc Tcl_FreeProc
+#else
+typedef void (Tcl_LimitHandlerDeleteProc) (void *clientData);
+#endif
+
+#if 0
+/*
+ *----------------------------------------------------------------------------
+ * We would like to provide an anonymous structure "mp_int" here, which is
+ * compatible with libtommath's "mp_int", but without duplicating anything
+ * from <tommath.h> or including <tommath.h> here. But the libtommath project
+ * didn't honor our request. See: <https://github.com/libtom/libtommath/pull/473>
+ *
+ * That's why this part is commented out, and we are using (void *) in
+ * various API's in stead of the more correct (mp_int *).
+ */
+
+#ifndef MP_INT_DECLARED
+#define MP_INT_DECLARED
+typedef struct mp_int mp_int;
+#endif
+
+#endif
+
+/*
+ *----------------------------------------------------------------------------
+ * Definitions needed for Tcl_ParseArgvObj routines.
+ * Based on tkArgv.c.
+ * Modifications from the original are copyright (c) Sam Bromley 2006
+ */
+
+typedef struct {
+ int type; /* Indicates the option type; see below. */
+ const char *keyStr; /* The key string that flags the option in the
+ * argv array. */
+ void *srcPtr; /* Value to be used in setting dst; usage
+ * depends on type.*/
+ void *dstPtr; /* Address of value to be modified; usage
+ * depends on type.*/
+ const char *helpStr; /* Documentation message describing this
+ * option. */
+ void *clientData; /* Word to pass to function callbacks. */
+} Tcl_ArgvInfo;
+
+/*
+ * Legal values for the type field of a Tcl_ArgInfo: see the user
+ * documentation for details.
+ */
+
+#define TCL_ARGV_CONSTANT 15
+#define TCL_ARGV_INT 16
+#define TCL_ARGV_STRING 17
+#define TCL_ARGV_REST 18
+#define TCL_ARGV_FLOAT 19
+#define TCL_ARGV_FUNC 20
+#define TCL_ARGV_GENFUNC 21
+#define TCL_ARGV_HELP 22
+#define TCL_ARGV_END 23
+
+/*
+ * Types of callback functions for the TCL_ARGV_FUNC and TCL_ARGV_GENFUNC
+ * argument types:
+ */
+
+typedef int (Tcl_ArgvFuncProc)(void *clientData, Tcl_Obj *objPtr,
+ void *dstPtr);
+typedef Tcl_Size (Tcl_ArgvGenFuncProc)(void *clientData, Tcl_Interp *interp,
+ Tcl_Size objc, Tcl_Obj *const *objv, void *dstPtr);
+
+/*
+ * Shorthand for commonly used argTable entries.
+ */
+
+#define TCL_ARGV_AUTO_HELP \
+ {TCL_ARGV_HELP, "-help", NULL, NULL, \
+ "Print summary of command-line options and abort", NULL}
+#define TCL_ARGV_AUTO_REST \
+ {TCL_ARGV_REST, "--", NULL, NULL, \
+ "Marks the end of the options", NULL}
+#define TCL_ARGV_TABLE_END \
+ {TCL_ARGV_END, NULL, NULL, NULL, NULL, NULL}
+
+/*
+ *----------------------------------------------------------------------------
+ * Definitions needed for Tcl_Zlib routines. [TIP #234]
+ *
+ * Constants for the format flags describing what sort of data format is
+ * desired/expected for the Tcl_ZlibDeflate, Tcl_ZlibInflate and
+ * Tcl_ZlibStreamInit functions.
+ */
+
+#define TCL_ZLIB_FORMAT_RAW 1
+#define TCL_ZLIB_FORMAT_ZLIB 2
+#define TCL_ZLIB_FORMAT_GZIP 4
+#define TCL_ZLIB_FORMAT_AUTO 8
+
+/*
+ * Constants that describe whether the stream is to operate in compressing or
+ * decompressing mode.
+ */
+
+#define TCL_ZLIB_STREAM_DEFLATE 16
+#define TCL_ZLIB_STREAM_INFLATE 32
+
+/*
+ * Constants giving compression levels. Use of TCL_ZLIB_COMPRESS_DEFAULT is
+ * recommended.
+ */
+
+#define TCL_ZLIB_COMPRESS_NONE 0
+#define TCL_ZLIB_COMPRESS_FAST 1
+#define TCL_ZLIB_COMPRESS_BEST 9
+#define TCL_ZLIB_COMPRESS_DEFAULT (-1)
+
+/*
+ * Constants for types of flushing, used with Tcl_ZlibFlush.
+ */
+
+#define TCL_ZLIB_NO_FLUSH 0
+#define TCL_ZLIB_FLUSH 2
+#define TCL_ZLIB_FULLFLUSH 3
+#define TCL_ZLIB_FINALIZE 4
+
+/*
+ *----------------------------------------------------------------------------
+ * Definitions needed for the Tcl_LoadFile function. [TIP #416]
+ */
+
+#define TCL_LOAD_GLOBAL 1
+#define TCL_LOAD_LAZY 2
+
+/*
+ *----------------------------------------------------------------------------
+ * Definitions needed for the Tcl_OpenTcpServerEx function. [TIP #456]
+ */
+#define TCL_TCPSERVER_REUSEADDR (1<<0)
+#define TCL_TCPSERVER_REUSEPORT (1<<1)
+
+/*
+ * Constants for special Tcl_Size-typed values, see TIP #494
+ */
+
+#define TCL_IO_FAILURE ((Tcl_Size)-1)
+#define TCL_AUTO_LENGTH ((Tcl_Size)-1)
+#define TCL_INDEX_NONE ((Tcl_Size)-1)
+
+/*
+ *----------------------------------------------------------------------------
+ * Single public declaration for NRE.
+ */
+
+typedef int (Tcl_NRPostProc) (void *data[], Tcl_Interp *interp,
+ int result);
+
+/*
+ *----------------------------------------------------------------------------
+ * The following constant is used to test for older versions of Tcl in the
+ * stubs tables.
+ */
+
+#if TCL_MAJOR_VERSION > 8
+# define TCL_STUB_MAGIC ((int) 0xFCA3BACB + (int) sizeof(void *))
+#else
+# define TCL_STUB_MAGIC ((int) 0xFCA3BACF)
+#endif
+
+/*
+ * The following function is required to be defined in all stubs aware
+ * extensions. The function is actually implemented in the stub library, not
+ * the main Tcl library, although there is a trivial implementation in the
+ * main library in case an extension is statically linked into an application.
+ */
+
+const char * Tcl_InitStubs(Tcl_Interp *interp, const char *version,
+ int exact, int magic);
+const char * TclTomMathInitializeStubs(Tcl_Interp *interp,
+ const char *version, int epoch, int revision);
+const char * TclInitStubTable(const char *version);
+void * TclStubCall(void *arg);
+#if defined(_WIN32)
+ TCL_NORETURN void Tcl_ConsolePanic(const char *format, ...);
+#else
+# define Tcl_ConsolePanic ((Tcl_PanicProc *)NULL)
+#endif
+
+#ifdef USE_TCL_STUBS
+#if TCL_MAJOR_VERSION < 9
+# define Tcl_InitStubs(interp, version, exact) \
+ (Tcl_InitStubs)(interp, version, \
+ (exact)|(TCL_MAJOR_VERSION<<8)|(0xFF<<16), \
+ TCL_STUB_MAGIC)
+#else
+# define Tcl_InitStubs(interp, version, exact) \
+ (Tcl_InitStubs)(interp, version, \
+ (exact)|(TCL_MAJOR_VERSION<<8)|(TCL_MINOR_VERSION<<16), \
+ TCL_STUB_MAGIC)
+#endif
+#else
+#if TCL_MAJOR_VERSION < 9
+# define Tcl_InitStubs(interp, version, exact) \
+ Tcl_Panic(((void)interp, (void)version, \
+ (void)exact, "Please define -DUSE_TCL_STUBS"))
+#else
+# define Tcl_InitStubs(interp, version, exact) \
+ Tcl_PkgInitStubsCheck(interp, version, \
+ (exact)|(TCL_MAJOR_VERSION<<8)|(TCL_MINOR_VERSION<<16))
+#endif
+#endif
+
+/*
+ * Public functions that are not accessible via the stubs table.
+ * Tcl_GetMemoryInfo is needed for AOLserver. [Bug 1868171]
+ */
+
+#define Tcl_Main(argc, argv, proc) Tcl_MainEx(argc, argv, proc, \
+ ((Tcl_SetPanicProc(Tcl_ConsolePanic), Tcl_CreateInterp())))
+EXTERN TCL_NORETURN void Tcl_MainEx(Tcl_Size argc, char **argv,
+ Tcl_AppInitProc *appInitProc, Tcl_Interp *interp);
+EXTERN const char * Tcl_PkgInitStubsCheck(Tcl_Interp *interp,
+ const char *version, int exact);
+EXTERN const char * Tcl_InitSubsystems(void);
+EXTERN void Tcl_GetMemoryInfo(Tcl_DString *dsPtr);
+EXTERN const char * Tcl_FindExecutable(const char *argv0);
+EXTERN const char * Tcl_SetPreInitScript(const char *string);
+EXTERN const char * Tcl_SetPanicProc(
+ Tcl_PanicProc *panicProc);
+EXTERN void Tcl_StaticLibrary(Tcl_Interp *interp,
+ const char *prefix,
+ Tcl_LibraryInitProc *initProc,
+ Tcl_LibraryInitProc *safeInitProc);
+#ifndef TCL_NO_DEPRECATED
+# define Tcl_StaticPackage Tcl_StaticLibrary
+#endif
+EXTERN Tcl_ExitProc * Tcl_SetExitProc(Tcl_ExitProc *proc);
+#ifdef _WIN32
+EXTERN const char *TclZipfs_AppHook(int *argc, unsigned short ***argv);
+#else
+EXTERN const char *TclZipfs_AppHook(int *argc, char ***argv);
+#endif
+#if defined(_WIN32) && defined(UNICODE)
+#ifndef USE_TCL_STUBS
+# define Tcl_FindExecutable(arg) ((Tcl_FindExecutable)((const char *)(arg)))
+#endif
+# define Tcl_MainEx Tcl_MainExW
+ EXTERN TCL_NORETURN void Tcl_MainExW(Tcl_Size argc, unsigned short **argv,
+ Tcl_AppInitProc *appInitProc, Tcl_Interp *interp);
+#endif
+#if defined(USE_TCL_STUBS) && (TCL_MAJOR_VERSION > 8)
+#define Tcl_SetPanicProc(panicProc) \
+ TclInitStubTable(((const char *(*)(Tcl_PanicProc *))TclStubCall((void *)panicProc))(panicProc))
+#define Tcl_InitSubsystems() \
+ TclInitStubTable(((const char *(*)(void))TclStubCall((void *)1))())
+#define Tcl_FindExecutable(argv0) \
+ TclInitStubTable(((const char *(*)(const char *))TclStubCall((void *)2))(argv0))
+#define TclZipfs_AppHook(argcp, argvp) \
+ TclInitStubTable(((const char *(*)(int *, void *))TclStubCall((void *)3))(argcp, argvp))
+#define Tcl_MainExW(argc, argv, appInitProc, interp) \
+ (void)((const char *(*)(Tcl_Size, const void *, Tcl_AppInitProc *, Tcl_Interp *)) \
+ TclStubCall((void *)4))(argc, argv, appInitProc, interp)
+#if !defined(_WIN32) || !defined(UNICODE)
+#define Tcl_MainEx(argc, argv, appInitProc, interp) \
+ (void)((const char *(*)(Tcl_Size, const void *, Tcl_AppInitProc *, Tcl_Interp *)) \
+ TclStubCall((void *)5))(argc, argv, appInitProc, interp)
+#endif
+#define Tcl_StaticLibrary(interp, pkgName, initProc, safeInitProc) \
+ (void)((const char *(*)(Tcl_Interp *, const char *, Tcl_LibraryInitProc *, Tcl_LibraryInitProc *)) \
+ TclStubCall((void *)6))(interp, pkgName, initProc, safeInitProc)
+#define Tcl_SetExitProc(proc) \
+ ((Tcl_ExitProc *(*)(Tcl_ExitProc *))TclStubCall((void *)7))(proc)
+#define Tcl_GetMemoryInfo(dsPtr) \
+ (void)((const char *(*)(Tcl_DString *))TclStubCall((void *)8))(dsPtr)
+#define Tcl_SetPreInitScript(string) \
+ ((const char *(*)(const char *))TclStubCall((void *)9))(string)
+#endif
+
+/*
+ *----------------------------------------------------------------------------
+ * Include the public function declarations that are accessible via the stubs
+ * table.
+ */
+
+#include "tclDecls.h"
+
+/*
+ * Include platform specific public function declarations that are accessible
+ * via the stubs table. Make all TclOO symbols MODULE_SCOPE (which only
+ * has effect on building it as a shared library). See ticket [3010352].
+ */
+
+#if defined(BUILD_tcl)
+# undef TCLAPI
+# define TCLAPI MODULE_SCOPE
+#endif
+
+/*
+ *----------------------------------------------------------------------------
+ * The following declarations map ckalloc and ckfree to Tcl_Alloc and
+ * Tcl_Free for use in Tcl-8.x-compatible extensions.
+ */
+
+#ifndef BUILD_tcl
+# define ckalloc Tcl_Alloc
+# define attemptckalloc Tcl_AttemptAlloc
+# ifdef _MSC_VER
+ /* Silence invalid C4090 warnings */
+# define ckfree(a) Tcl_Free((void *)(a))
+# define ckrealloc(a,b) Tcl_Realloc((void *)(a),(b))
+# define attemptckrealloc(a,b) Tcl_AttemptRealloc((void *)(a),(b))
+# else
+# define ckfree Tcl_Free
+# define ckrealloc Tcl_Realloc
+# define attemptckrealloc Tcl_AttemptRealloc
+# endif
+#endif
+
+#ifndef TCL_MEM_DEBUG
+
+/*
+ * If we are not using the debugging allocator, we should call the Tcl_Alloc,
+ * et al. routines in order to guarantee that every module is using the same
+ * memory allocator both inside and outside of the Tcl library.
+ */
+
+# undef Tcl_InitMemory
+# define Tcl_InitMemory(x)
+# undef Tcl_DumpActiveMemory
+# define Tcl_DumpActiveMemory(x)
+# undef Tcl_ValidateAllMemory
+# define Tcl_ValidateAllMemory(x,y)
+
+#endif /* !TCL_MEM_DEBUG */
+
+#ifdef TCL_MEM_DEBUG
+# undef Tcl_IncrRefCount
+# define Tcl_IncrRefCount(objPtr) \
+ Tcl_DbIncrRefCount(objPtr, __FILE__, __LINE__)
+# undef Tcl_DecrRefCount
+# define Tcl_DecrRefCount(objPtr) \
+ Tcl_DbDecrRefCount(objPtr, __FILE__, __LINE__)
+# undef Tcl_IsShared
+# define Tcl_IsShared(objPtr) \
+ Tcl_DbIsShared(objPtr, __FILE__, __LINE__)
+/*
+ * Free the Obj by effectively doing:
+ *
+ * Tcl_IncrRefCount(objPtr);
+ * Tcl_DecrRefCount(objPtr);
+ *
+ * This will free the obj if there are no references to the obj.
+ */
+# define Tcl_BounceRefCount(objPtr) \
+ TclBounceRefCount(objPtr, __FILE__, __LINE__)
+
+static inline void
+TclBounceRefCount(
+ Tcl_Obj* objPtr,
+ const char* fn,
+ int line)
+{
+ if (objPtr) {
+ if ((objPtr)->refCount == 0) {
+ Tcl_DbDecrRefCount(objPtr, fn, line);
+ }
+ }
+}
+#else
+# undef Tcl_IncrRefCount
+# define Tcl_IncrRefCount(objPtr) \
+ ((void)++(objPtr)->refCount)
+ /*
+ * Use do/while0 idiom for optimum correctness without compiler warnings.
+ * https://wiki.c2.com/?TrivialDoWhileLoop
+ */
+# undef Tcl_DecrRefCount
+# define Tcl_DecrRefCount(objPtr) \
+ do { \
+ Tcl_Obj *_objPtr = (objPtr); \
+ if (_objPtr->refCount-- <= 1) { \
+ TclFreeObj(_objPtr); \
+ } \
+ } while(0)
+# undef Tcl_IsShared
+# define Tcl_IsShared(objPtr) \
+ ((objPtr)->refCount > 1)
+
+/*
+ * Declare that obj will no longer be used or referenced.
+ * This will free the obj if there are no references to the obj.
+ */
+# define Tcl_BounceRefCount(objPtr) \
+ TclBounceRefCount(objPtr);
+
+static inline void
+TclBounceRefCount(
+ Tcl_Obj* objPtr)
+{
+ if (objPtr) {
+ if ((objPtr)->refCount == 0) {
+ Tcl_DecrRefCount(objPtr);
+ }
+ }
+}
+
+#endif
+
+/*
+ * Macros and definitions that help to debug the use of Tcl objects. When
+ * TCL_MEM_DEBUG is defined, the Tcl_New declarations are overridden to call
+ * debugging versions of the object creation functions.
+ */
+
+#ifdef TCL_MEM_DEBUG
+# undef Tcl_NewBignumObj
+# define Tcl_NewBignumObj(val) \
+ Tcl_DbNewBignumObj(val, __FILE__, __LINE__)
+# undef Tcl_NewBooleanObj
+# define Tcl_NewBooleanObj(val) \
+ Tcl_DbNewWideIntObj((val)!=0, __FILE__, __LINE__)
+# undef Tcl_NewByteArrayObj
+# define Tcl_NewByteArrayObj(bytes, len) \
+ Tcl_DbNewByteArrayObj(bytes, len, __FILE__, __LINE__)
+# undef Tcl_NewDoubleObj
+# define Tcl_NewDoubleObj(val) \
+ Tcl_DbNewDoubleObj(val, __FILE__, __LINE__)
+# undef Tcl_NewListObj
+# define Tcl_NewListObj(objc, objv) \
+ Tcl_DbNewListObj(objc, objv, __FILE__, __LINE__)
+# undef Tcl_NewObj
+# define Tcl_NewObj() \
+ Tcl_DbNewObj(__FILE__, __LINE__)
+# undef Tcl_NewStringObj
+# define Tcl_NewStringObj(bytes, len) \
+ Tcl_DbNewStringObj(bytes, len, __FILE__, __LINE__)
+# undef Tcl_NewWideIntObj
+# define Tcl_NewWideIntObj(val) \
+ Tcl_DbNewWideIntObj(val, __FILE__, __LINE__)
+#endif /* TCL_MEM_DEBUG */
+
+/*
+ *----------------------------------------------------------------------------
+ * Macros for clients to use to access fields of hash entries:
+ */
+
+#define Tcl_GetHashValue(h) ((h)->clientData)
+#define Tcl_SetHashValue(h, value) ((h)->clientData = (void *)(value))
+#define Tcl_GetHashKey(tablePtr, h) \
+ ((void *) (((tablePtr)->keyType == TCL_ONE_WORD_KEYS || \
+ (tablePtr)->keyType == TCL_CUSTOM_PTR_KEYS) \
+ ? (h)->key.oneWordValue \
+ : (h)->key.string))
+
+/*
+ * Macros to use for clients to use to invoke find and create functions for
+ * hash tables:
+ */
+
+#define Tcl_FindHashEntry(tablePtr, key) \
+ (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
+#define Tcl_CreateHashEntry(tablePtr, key, newPtr) \
+ (*((tablePtr)->createProc))(tablePtr, (const char *)(key), newPtr)
+
+#endif /* RC_INVOKED */
+
+/*
+ * end block for C++
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TCL */
+
+/*
+ * Local Variables:
+ * mode: c
+ * c-basic-offset: 4
+ * fill-column: 78
+ * End:
+ */
diff --git a/compat/tcl-9.0/generic/tclDecls.h b/compat/tcl-9.0/generic/tclDecls.h
new file mode 100644
index 0000000..d3583d3
--- /dev/null
+++ b/compat/tcl-9.0/generic/tclDecls.h
@@ -0,0 +1,4369 @@
+/*
+ * tclDecls.h --
+ *
+ * Declarations of functions in the platform independent public Tcl API.
+ *
+ * Copyright (c) 1998-1999 by Scriptics Corporation.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ */
+
+#ifndef _TCLDECLS
+#define _TCLDECLS
+
+#include <stddef.h> /* for size_t */
+
+#undef TCL_STORAGE_CLASS
+#ifdef BUILD_tcl
+# define TCL_STORAGE_CLASS DLLEXPORT
+#else
+# ifdef USE_TCL_STUBS
+# define TCL_STORAGE_CLASS
+# else
+# define TCL_STORAGE_CLASS DLLIMPORT
+# endif
+#endif
+
+#if !defined(BUILD_tcl)
+# define TCL_DEPRECATED(msg) EXTERN TCL_DEPRECATED_API(msg)
+#elif defined(TCL_NO_DEPRECATED)
+# define TCL_DEPRECATED(msg) MODULE_SCOPE
+#else
+# define TCL_DEPRECATED(msg) EXTERN
+#endif
+
+
+/*
+ * WARNING: This file is automatically generated by the tools/genStubs.tcl
+ * script. Any modifications to the function declarations below should be made
+ * in the generic/tcl.decls script.
+ */
+
+/* !BEGIN!: Do not edit below this line. */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Exported function declarations:
+ */
+
+/* 0 */
+EXTERN int Tcl_PkgProvideEx(Tcl_Interp *interp,
+ const char *name, const char *version,
+ const void *clientData);
+/* 1 */
+EXTERN const char * Tcl_PkgRequireEx(Tcl_Interp *interp,
+ const char *name, const char *version,
+ int exact, void *clientDataPtr);
+/* 2 */
+EXTERN TCL_NORETURN void Tcl_Panic(const char *format, ...) TCL_FORMAT_PRINTF(1, 2);
+/* 3 */
+EXTERN void * Tcl_Alloc(TCL_HASH_TYPE size);
+/* 4 */
+EXTERN void Tcl_Free(void *ptr);
+/* 5 */
+EXTERN void * Tcl_Realloc(void *ptr, TCL_HASH_TYPE size);
+/* 6 */
+EXTERN void * Tcl_DbCkalloc(TCL_HASH_TYPE size, const char *file,
+ int line);
+/* 7 */
+EXTERN void Tcl_DbCkfree(void *ptr, const char *file, int line);
+/* 8 */
+EXTERN void * Tcl_DbCkrealloc(void *ptr, TCL_HASH_TYPE size,
+ const char *file, int line);
+/* 9 */
+EXTERN void Tcl_CreateFileHandler(int fd, int mask,
+ Tcl_FileProc *proc, void *clientData);
+/* 10 */
+EXTERN void Tcl_DeleteFileHandler(int fd);
+/* 11 */
+EXTERN void Tcl_SetTimer(const Tcl_Time *timePtr);
+/* 12 */
+EXTERN void Tcl_Sleep(int ms);
+/* 13 */
+EXTERN int Tcl_WaitForEvent(const Tcl_Time *timePtr);
+/* 14 */
+EXTERN int Tcl_AppendAllObjTypes(Tcl_Interp *interp,
+ Tcl_Obj *objPtr);
+/* 15 */
+EXTERN void Tcl_AppendStringsToObj(Tcl_Obj *objPtr, ...);
+/* 16 */
+EXTERN void Tcl_AppendToObj(Tcl_Obj *objPtr, const char *bytes,
+ Tcl_Size length);
+/* 17 */
+EXTERN Tcl_Obj * Tcl_ConcatObj(Tcl_Size objc, Tcl_Obj *const objv[]);
+/* 18 */
+EXTERN int Tcl_ConvertToType(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, const Tcl_ObjType *typePtr);
+/* 19 */
+EXTERN void Tcl_DbDecrRefCount(Tcl_Obj *objPtr, const char *file,
+ int line);
+/* 20 */
+EXTERN void Tcl_DbIncrRefCount(Tcl_Obj *objPtr, const char *file,
+ int line);
+/* 21 */
+EXTERN int Tcl_DbIsShared(Tcl_Obj *objPtr, const char *file,
+ int line);
+/* Slot 22 is reserved */
+/* 23 */
+EXTERN Tcl_Obj * Tcl_DbNewByteArrayObj(const unsigned char *bytes,
+ Tcl_Size numBytes, const char *file,
+ int line);
+/* 24 */
+EXTERN Tcl_Obj * Tcl_DbNewDoubleObj(double doubleValue,
+ const char *file, int line);
+/* 25 */
+EXTERN Tcl_Obj * Tcl_DbNewListObj(Tcl_Size objc, Tcl_Obj *const *objv,
+ const char *file, int line);
+/* Slot 26 is reserved */
+/* 27 */
+EXTERN Tcl_Obj * Tcl_DbNewObj(const char *file, int line);
+/* 28 */
+EXTERN Tcl_Obj * Tcl_DbNewStringObj(const char *bytes,
+ Tcl_Size length, const char *file, int line);
+/* 29 */
+EXTERN Tcl_Obj * Tcl_DuplicateObj(Tcl_Obj *objPtr);
+/* 30 */
+EXTERN void TclFreeObj(Tcl_Obj *objPtr);
+/* 31 */
+EXTERN int Tcl_GetBoolean(Tcl_Interp *interp, const char *src,
+ int *intPtr);
+/* 32 */
+EXTERN int Tcl_GetBooleanFromObj(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, int *intPtr);
+/* 33 */
+EXTERN unsigned char * Tcl_GetByteArrayFromObj(Tcl_Obj *objPtr,
+ Tcl_Size *numBytesPtr);
+/* 34 */
+EXTERN int Tcl_GetDouble(Tcl_Interp *interp, const char *src,
+ double *doublePtr);
+/* 35 */
+EXTERN int Tcl_GetDoubleFromObj(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, double *doublePtr);
+/* Slot 36 is reserved */
+/* 37 */
+EXTERN int Tcl_GetInt(Tcl_Interp *interp, const char *src,
+ int *intPtr);
+/* 38 */
+EXTERN int Tcl_GetIntFromObj(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, int *intPtr);
+/* 39 */
+EXTERN int Tcl_GetLongFromObj(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, long *longPtr);
+/* 40 */
+EXTERN const Tcl_ObjType * Tcl_GetObjType(const char *typeName);
+/* 41 */
+EXTERN char * TclGetStringFromObj(Tcl_Obj *objPtr, void *lengthPtr);
+/* 42 */
+EXTERN void Tcl_InvalidateStringRep(Tcl_Obj *objPtr);
+/* 43 */
+EXTERN int Tcl_ListObjAppendList(Tcl_Interp *interp,
+ Tcl_Obj *listPtr, Tcl_Obj *elemListPtr);
+/* 44 */
+EXTERN int Tcl_ListObjAppendElement(Tcl_Interp *interp,
+ Tcl_Obj *listPtr, Tcl_Obj *objPtr);
+/* 45 */
+EXTERN int TclListObjGetElements(Tcl_Interp *interp,
+ Tcl_Obj *listPtr, void *objcPtr,
+ Tcl_Obj ***objvPtr);
+/* 46 */
+EXTERN int Tcl_ListObjIndex(Tcl_Interp *interp,
+ Tcl_Obj *listPtr, Tcl_Size index,
+ Tcl_Obj **objPtrPtr);
+/* 47 */
+EXTERN int TclListObjLength(Tcl_Interp *interp,
+ Tcl_Obj *listPtr, void *lengthPtr);
+/* 48 */
+EXTERN int Tcl_ListObjReplace(Tcl_Interp *interp,
+ Tcl_Obj *listPtr, Tcl_Size first,
+ Tcl_Size count, Tcl_Size objc,
+ Tcl_Obj *const objv[]);
+/* Slot 49 is reserved */
+/* 50 */
+EXTERN Tcl_Obj * Tcl_NewByteArrayObj(const unsigned char *bytes,
+ Tcl_Size numBytes);
+/* 51 */
+EXTERN Tcl_Obj * Tcl_NewDoubleObj(double doubleValue);
+/* Slot 52 is reserved */
+/* 53 */
+EXTERN Tcl_Obj * Tcl_NewListObj(Tcl_Size objc, Tcl_Obj *const objv[]);
+/* Slot 54 is reserved */
+/* 55 */
+EXTERN Tcl_Obj * Tcl_NewObj(void);
+/* 56 */
+EXTERN Tcl_Obj * Tcl_NewStringObj(const char *bytes, Tcl_Size length);
+/* Slot 57 is reserved */
+/* 58 */
+EXTERN unsigned char * Tcl_SetByteArrayLength(Tcl_Obj *objPtr,
+ Tcl_Size numBytes);
+/* 59 */
+EXTERN void Tcl_SetByteArrayObj(Tcl_Obj *objPtr,
+ const unsigned char *bytes,
+ Tcl_Size numBytes);
+/* 60 */
+EXTERN void Tcl_SetDoubleObj(Tcl_Obj *objPtr, double doubleValue);
+/* Slot 61 is reserved */
+/* 62 */
+EXTERN void Tcl_SetListObj(Tcl_Obj *objPtr, Tcl_Size objc,
+ Tcl_Obj *const objv[]);
+/* Slot 63 is reserved */
+/* 64 */
+EXTERN void Tcl_SetObjLength(Tcl_Obj *objPtr, Tcl_Size length);
+/* 65 */
+EXTERN void Tcl_SetStringObj(Tcl_Obj *objPtr, const char *bytes,
+ Tcl_Size length);
+/* Slot 66 is reserved */
+/* Slot 67 is reserved */
+/* 68 */
+EXTERN void Tcl_AllowExceptions(Tcl_Interp *interp);
+/* 69 */
+EXTERN void Tcl_AppendElement(Tcl_Interp *interp,
+ const char *element);
+/* 70 */
+EXTERN void Tcl_AppendResult(Tcl_Interp *interp, ...);
+/* 71 */
+EXTERN Tcl_AsyncHandler Tcl_AsyncCreate(Tcl_AsyncProc *proc,
+ void *clientData);
+/* 72 */
+EXTERN void Tcl_AsyncDelete(Tcl_AsyncHandler async);
+/* 73 */
+EXTERN int Tcl_AsyncInvoke(Tcl_Interp *interp, int code);
+/* 74 */
+EXTERN void Tcl_AsyncMark(Tcl_AsyncHandler async);
+/* 75 */
+EXTERN int Tcl_AsyncReady(void);
+/* Slot 76 is reserved */
+/* Slot 77 is reserved */
+/* 78 */
+EXTERN int Tcl_BadChannelOption(Tcl_Interp *interp,
+ const char *optionName,
+ const char *optionList);
+/* 79 */
+EXTERN void Tcl_CallWhenDeleted(Tcl_Interp *interp,
+ Tcl_InterpDeleteProc *proc, void *clientData);
+/* 80 */
+EXTERN void Tcl_CancelIdleCall(Tcl_IdleProc *idleProc,
+ void *clientData);
+/* 81 */
+EXTERN int Tcl_Close(Tcl_Interp *interp, Tcl_Channel chan);
+/* 82 */
+EXTERN int Tcl_CommandComplete(const char *cmd);
+/* 83 */
+EXTERN char * Tcl_Concat(Tcl_Size argc, const char *const *argv);
+/* 84 */
+EXTERN Tcl_Size Tcl_ConvertElement(const char *src, char *dst,
+ int flags);
+/* 85 */
+EXTERN Tcl_Size Tcl_ConvertCountedElement(const char *src,
+ Tcl_Size length, char *dst, int flags);
+/* 86 */
+EXTERN int Tcl_CreateAlias(Tcl_Interp *childInterp,
+ const char *childCmd, Tcl_Interp *target,
+ const char *targetCmd, Tcl_Size argc,
+ const char *const *argv);
+/* 87 */
+EXTERN int Tcl_CreateAliasObj(Tcl_Interp *childInterp,
+ const char *childCmd, Tcl_Interp *target,
+ const char *targetCmd, Tcl_Size objc,
+ Tcl_Obj *const objv[]);
+/* 88 */
+EXTERN Tcl_Channel Tcl_CreateChannel(const Tcl_ChannelType *typePtr,
+ const char *chanName, void *instanceData,
+ int mask);
+/* 89 */
+EXTERN void Tcl_CreateChannelHandler(Tcl_Channel chan, int mask,
+ Tcl_ChannelProc *proc, void *clientData);
+/* 90 */
+EXTERN void Tcl_CreateCloseHandler(Tcl_Channel chan,
+ Tcl_CloseProc *proc, void *clientData);
+/* 91 */
+EXTERN Tcl_Command Tcl_CreateCommand(Tcl_Interp *interp,
+ const char *cmdName, Tcl_CmdProc *proc,
+ void *clientData,
+ Tcl_CmdDeleteProc *deleteProc);
+/* 92 */
+EXTERN void Tcl_CreateEventSource(Tcl_EventSetupProc *setupProc,
+ Tcl_EventCheckProc *checkProc,
+ void *clientData);
+/* 93 */
+EXTERN void Tcl_CreateExitHandler(Tcl_ExitProc *proc,
+ void *clientData);
+/* 94 */
+EXTERN Tcl_Interp * Tcl_CreateInterp(void);
+/* Slot 95 is reserved */
+/* 96 */
+EXTERN Tcl_Command Tcl_CreateObjCommand(Tcl_Interp *interp,
+ const char *cmdName, Tcl_ObjCmdProc *proc,
+ void *clientData,
+ Tcl_CmdDeleteProc *deleteProc);
+/* 97 */
+EXTERN Tcl_Interp * Tcl_CreateChild(Tcl_Interp *interp, const char *name,
+ int isSafe);
+/* 98 */
+EXTERN Tcl_TimerToken Tcl_CreateTimerHandler(int milliseconds,
+ Tcl_TimerProc *proc, void *clientData);
+/* 99 */
+EXTERN Tcl_Trace Tcl_CreateTrace(Tcl_Interp *interp, Tcl_Size level,
+ Tcl_CmdTraceProc *proc, void *clientData);
+/* 100 */
+EXTERN void Tcl_DeleteAssocData(Tcl_Interp *interp,
+ const char *name);
+/* 101 */
+EXTERN void Tcl_DeleteChannelHandler(Tcl_Channel chan,
+ Tcl_ChannelProc *proc, void *clientData);
+/* 102 */
+EXTERN void Tcl_DeleteCloseHandler(Tcl_Channel chan,
+ Tcl_CloseProc *proc, void *clientData);
+/* 103 */
+EXTERN int Tcl_DeleteCommand(Tcl_Interp *interp,
+ const char *cmdName);
+/* 104 */
+EXTERN int Tcl_DeleteCommandFromToken(Tcl_Interp *interp,
+ Tcl_Command command);
+/* 105 */
+EXTERN void Tcl_DeleteEvents(Tcl_EventDeleteProc *proc,
+ void *clientData);
+/* 106 */
+EXTERN void Tcl_DeleteEventSource(Tcl_EventSetupProc *setupProc,
+ Tcl_EventCheckProc *checkProc,
+ void *clientData);
+/* 107 */
+EXTERN void Tcl_DeleteExitHandler(Tcl_ExitProc *proc,
+ void *clientData);
+/* 108 */
+EXTERN void Tcl_DeleteHashEntry(Tcl_HashEntry *entryPtr);
+/* 109 */
+EXTERN void Tcl_DeleteHashTable(Tcl_HashTable *tablePtr);
+/* 110 */
+EXTERN void Tcl_DeleteInterp(Tcl_Interp *interp);
+/* 111 */
+EXTERN void Tcl_DetachPids(Tcl_Size numPids, Tcl_Pid *pidPtr);
+/* 112 */
+EXTERN void Tcl_DeleteTimerHandler(Tcl_TimerToken token);
+/* 113 */
+EXTERN void Tcl_DeleteTrace(Tcl_Interp *interp, Tcl_Trace trace);
+/* 114 */
+EXTERN void Tcl_DontCallWhenDeleted(Tcl_Interp *interp,
+ Tcl_InterpDeleteProc *proc, void *clientData);
+/* 115 */
+EXTERN int Tcl_DoOneEvent(int flags);
+/* 116 */
+EXTERN void Tcl_DoWhenIdle(Tcl_IdleProc *proc, void *clientData);
+/* 117 */
+EXTERN char * Tcl_DStringAppend(Tcl_DString *dsPtr,
+ const char *bytes, Tcl_Size length);
+/* 118 */
+EXTERN char * Tcl_DStringAppendElement(Tcl_DString *dsPtr,
+ const char *element);
+/* 119 */
+EXTERN void Tcl_DStringEndSublist(Tcl_DString *dsPtr);
+/* 120 */
+EXTERN void Tcl_DStringFree(Tcl_DString *dsPtr);
+/* 121 */
+EXTERN void Tcl_DStringGetResult(Tcl_Interp *interp,
+ Tcl_DString *dsPtr);
+/* 122 */
+EXTERN void Tcl_DStringInit(Tcl_DString *dsPtr);
+/* 123 */
+EXTERN void Tcl_DStringResult(Tcl_Interp *interp,
+ Tcl_DString *dsPtr);
+/* 124 */
+EXTERN void Tcl_DStringSetLength(Tcl_DString *dsPtr,
+ Tcl_Size length);
+/* 125 */
+EXTERN void Tcl_DStringStartSublist(Tcl_DString *dsPtr);
+/* 126 */
+EXTERN int Tcl_Eof(Tcl_Channel chan);
+/* 127 */
+EXTERN const char * Tcl_ErrnoId(void);
+/* 128 */
+EXTERN const char * Tcl_ErrnoMsg(int err);
+/* Slot 129 is reserved */
+/* 130 */
+EXTERN int Tcl_EvalFile(Tcl_Interp *interp,
+ const char *fileName);
+/* Slot 131 is reserved */
+/* 132 */
+EXTERN void Tcl_EventuallyFree(void *clientData,
+ Tcl_FreeProc *freeProc);
+/* 133 */
+EXTERN TCL_NORETURN void Tcl_Exit(int status);
+/* 134 */
+EXTERN int Tcl_ExposeCommand(Tcl_Interp *interp,
+ const char *hiddenCmdToken,
+ const char *cmdName);
+/* 135 */
+EXTERN int Tcl_ExprBoolean(Tcl_Interp *interp, const char *expr,
+ int *ptr);
+/* 136 */
+EXTERN int Tcl_ExprBooleanObj(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, int *ptr);
+/* 137 */
+EXTERN int Tcl_ExprDouble(Tcl_Interp *interp, const char *expr,
+ double *ptr);
+/* 138 */
+EXTERN int Tcl_ExprDoubleObj(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, double *ptr);
+/* 139 */
+EXTERN int Tcl_ExprLong(Tcl_Interp *interp, const char *expr,
+ long *ptr);
+/* 140 */
+EXTERN int Tcl_ExprLongObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
+ long *ptr);
+/* 141 */
+EXTERN int Tcl_ExprObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
+ Tcl_Obj **resultPtrPtr);
+/* 142 */
+EXTERN int Tcl_ExprString(Tcl_Interp *interp, const char *expr);
+/* 143 */
+EXTERN void Tcl_Finalize(void);
+/* Slot 144 is reserved */
+/* 145 */
+EXTERN Tcl_HashEntry * Tcl_FirstHashEntry(Tcl_HashTable *tablePtr,
+ Tcl_HashSearch *searchPtr);
+/* 146 */
+EXTERN int Tcl_Flush(Tcl_Channel chan);
+/* Slot 147 is reserved */
+/* Slot 148 is reserved */
+/* 149 */
+EXTERN int TclGetAliasObj(Tcl_Interp *interp,
+ const char *childCmd,
+ Tcl_Interp **targetInterpPtr,
+ const char **targetCmdPtr, int *objcPtr,
+ Tcl_Obj ***objvPtr);
+/* 150 */
+EXTERN void * Tcl_GetAssocData(Tcl_Interp *interp,
+ const char *name,
+ Tcl_InterpDeleteProc **procPtr);
+/* 151 */
+EXTERN Tcl_Channel Tcl_GetChannel(Tcl_Interp *interp,
+ const char *chanName, int *modePtr);
+/* 152 */
+EXTERN Tcl_Size Tcl_GetChannelBufferSize(Tcl_Channel chan);
+/* 153 */
+EXTERN int Tcl_GetChannelHandle(Tcl_Channel chan, int direction,
+ void **handlePtr);
+/* 154 */
+EXTERN void * Tcl_GetChannelInstanceData(Tcl_Channel chan);
+/* 155 */
+EXTERN int Tcl_GetChannelMode(Tcl_Channel chan);
+/* 156 */
+EXTERN const char * Tcl_GetChannelName(Tcl_Channel chan);
+/* 157 */
+EXTERN int Tcl_GetChannelOption(Tcl_Interp *interp,
+ Tcl_Channel chan, const char *optionName,
+ Tcl_DString *dsPtr);
+/* 158 */
+EXTERN const Tcl_ChannelType * Tcl_GetChannelType(Tcl_Channel chan);
+/* 159 */
+EXTERN int Tcl_GetCommandInfo(Tcl_Interp *interp,
+ const char *cmdName, Tcl_CmdInfo *infoPtr);
+/* 160 */
+EXTERN const char * Tcl_GetCommandName(Tcl_Interp *interp,
+ Tcl_Command command);
+/* 161 */
+EXTERN int Tcl_GetErrno(void);
+/* 162 */
+EXTERN const char * Tcl_GetHostName(void);
+/* 163 */
+EXTERN int Tcl_GetInterpPath(Tcl_Interp *interp,
+ Tcl_Interp *childInterp);
+/* 164 */
+EXTERN Tcl_Interp * Tcl_GetParent(Tcl_Interp *interp);
+/* 165 */
+EXTERN const char * Tcl_GetNameOfExecutable(void);
+/* 166 */
+EXTERN Tcl_Obj * Tcl_GetObjResult(Tcl_Interp *interp);
+/* 167 */
+EXTERN int Tcl_GetOpenFile(Tcl_Interp *interp,
+ const char *chanID, int forWriting,
+ int checkUsage, void **filePtr);
+/* 168 */
+EXTERN Tcl_PathType Tcl_GetPathType(const char *path);
+/* 169 */
+EXTERN Tcl_Size Tcl_Gets(Tcl_Channel chan, Tcl_DString *dsPtr);
+/* 170 */
+EXTERN Tcl_Size Tcl_GetsObj(Tcl_Channel chan, Tcl_Obj *objPtr);
+/* 171 */
+EXTERN int Tcl_GetServiceMode(void);
+/* 172 */
+EXTERN Tcl_Interp * Tcl_GetChild(Tcl_Interp *interp, const char *name);
+/* 173 */
+EXTERN Tcl_Channel Tcl_GetStdChannel(int type);
+/* Slot 174 is reserved */
+/* Slot 175 is reserved */
+/* 176 */
+EXTERN const char * Tcl_GetVar2(Tcl_Interp *interp, const char *part1,
+ const char *part2, int flags);
+/* Slot 177 is reserved */
+/* Slot 178 is reserved */
+/* 179 */
+EXTERN int Tcl_HideCommand(Tcl_Interp *interp,
+ const char *cmdName,
+ const char *hiddenCmdToken);
+/* 180 */
+EXTERN int Tcl_Init(Tcl_Interp *interp);
+/* 181 */
+EXTERN void Tcl_InitHashTable(Tcl_HashTable *tablePtr,
+ int keyType);
+/* 182 */
+EXTERN int Tcl_InputBlocked(Tcl_Channel chan);
+/* 183 */
+EXTERN int Tcl_InputBuffered(Tcl_Channel chan);
+/* 184 */
+EXTERN int Tcl_InterpDeleted(Tcl_Interp *interp);
+/* 185 */
+EXTERN int Tcl_IsSafe(Tcl_Interp *interp);
+/* 186 */
+EXTERN char * Tcl_JoinPath(Tcl_Size argc, const char *const *argv,
+ Tcl_DString *resultPtr);
+/* 187 */
+EXTERN int Tcl_LinkVar(Tcl_Interp *interp, const char *varName,
+ void *addr, int type);
+/* Slot 188 is reserved */
+/* 189 */
+EXTERN Tcl_Channel Tcl_MakeFileChannel(void *handle, int mode);
+/* Slot 190 is reserved */
+/* 191 */
+EXTERN Tcl_Channel Tcl_MakeTcpClientChannel(void *tcpSocket);
+/* 192 */
+EXTERN char * Tcl_Merge(Tcl_Size argc, const char *const *argv);
+/* 193 */
+EXTERN Tcl_HashEntry * Tcl_NextHashEntry(Tcl_HashSearch *searchPtr);
+/* 194 */
+EXTERN void Tcl_NotifyChannel(Tcl_Channel channel, int mask);
+/* 195 */
+EXTERN Tcl_Obj * Tcl_ObjGetVar2(Tcl_Interp *interp, Tcl_Obj *part1Ptr,
+ Tcl_Obj *part2Ptr, int flags);
+/* 196 */
+EXTERN Tcl_Obj * Tcl_ObjSetVar2(Tcl_Interp *interp, Tcl_Obj *part1Ptr,
+ Tcl_Obj *part2Ptr, Tcl_Obj *newValuePtr,
+ int flags);
+/* 197 */
+EXTERN Tcl_Channel Tcl_OpenCommandChannel(Tcl_Interp *interp,
+ Tcl_Size argc, const char **argv, int flags);
+/* 198 */
+EXTERN Tcl_Channel Tcl_OpenFileChannel(Tcl_Interp *interp,
+ const char *fileName, const char *modeString,
+ int permissions);
+/* 199 */
+EXTERN Tcl_Channel Tcl_OpenTcpClient(Tcl_Interp *interp, int port,
+ const char *address, const char *myaddr,
+ int myport, int flags);
+/* 200 */
+EXTERN Tcl_Channel Tcl_OpenTcpServer(Tcl_Interp *interp, int port,
+ const char *host,
+ Tcl_TcpAcceptProc *acceptProc,
+ void *callbackData);
+/* 201 */
+EXTERN void Tcl_Preserve(void *data);
+/* 202 */
+EXTERN void Tcl_PrintDouble(Tcl_Interp *interp, double value,
+ char *dst);
+/* 203 */
+EXTERN int Tcl_PutEnv(const char *assignment);
+/* 204 */
+EXTERN const char * Tcl_PosixError(Tcl_Interp *interp);
+/* 205 */
+EXTERN void Tcl_QueueEvent(Tcl_Event *evPtr, int position);
+/* 206 */
+EXTERN Tcl_Size Tcl_Read(Tcl_Channel chan, char *bufPtr,
+ Tcl_Size toRead);
+/* 207 */
+EXTERN void Tcl_ReapDetachedProcs(void);
+/* 208 */
+EXTERN int Tcl_RecordAndEval(Tcl_Interp *interp,
+ const char *cmd, int flags);
+/* 209 */
+EXTERN int Tcl_RecordAndEvalObj(Tcl_Interp *interp,
+ Tcl_Obj *cmdPtr, int flags);
+/* 210 */
+EXTERN void Tcl_RegisterChannel(Tcl_Interp *interp,
+ Tcl_Channel chan);
+/* 211 */
+EXTERN void Tcl_RegisterObjType(const Tcl_ObjType *typePtr);
+/* 212 */
+EXTERN Tcl_RegExp Tcl_RegExpCompile(Tcl_Interp *interp,
+ const char *pattern);
+/* 213 */
+EXTERN int Tcl_RegExpExec(Tcl_Interp *interp, Tcl_RegExp regexp,
+ const char *text, const char *start);
+/* 214 */
+EXTERN int Tcl_RegExpMatch(Tcl_Interp *interp, const char *text,
+ const char *pattern);
+/* 215 */
+EXTERN void Tcl_RegExpRange(Tcl_RegExp regexp, Tcl_Size index,
+ const char **startPtr, const char **endPtr);
+/* 216 */
+EXTERN void Tcl_Release(void *clientData);
+/* 217 */
+EXTERN void Tcl_ResetResult(Tcl_Interp *interp);
+/* 218 */
+EXTERN Tcl_Size Tcl_ScanElement(const char *src, int *flagPtr);
+/* 219 */
+EXTERN Tcl_Size Tcl_ScanCountedElement(const char *src,
+ Tcl_Size length, int *flagPtr);
+/* Slot 220 is reserved */
+/* 221 */
+EXTERN int Tcl_ServiceAll(void);
+/* 222 */
+EXTERN int Tcl_ServiceEvent(int flags);
+/* 223 */
+EXTERN void Tcl_SetAssocData(Tcl_Interp *interp,
+ const char *name, Tcl_InterpDeleteProc *proc,
+ void *clientData);
+/* 224 */
+EXTERN void Tcl_SetChannelBufferSize(Tcl_Channel chan,
+ Tcl_Size sz);
+/* 225 */
+EXTERN int Tcl_SetChannelOption(Tcl_Interp *interp,
+ Tcl_Channel chan, const char *optionName,
+ const char *newValue);
+/* 226 */
+EXTERN int Tcl_SetCommandInfo(Tcl_Interp *interp,
+ const char *cmdName,
+ const Tcl_CmdInfo *infoPtr);
+/* 227 */
+EXTERN void Tcl_SetErrno(int err);
+/* 228 */
+EXTERN void Tcl_SetErrorCode(Tcl_Interp *interp, ...);
+/* 229 */
+EXTERN void Tcl_SetMaxBlockTime(const Tcl_Time *timePtr);
+/* Slot 230 is reserved */
+/* 231 */
+EXTERN Tcl_Size Tcl_SetRecursionLimit(Tcl_Interp *interp,
+ Tcl_Size depth);
+/* Slot 232 is reserved */
+/* 233 */
+EXTERN int Tcl_SetServiceMode(int mode);
+/* 234 */
+EXTERN void Tcl_SetObjErrorCode(Tcl_Interp *interp,
+ Tcl_Obj *errorObjPtr);
+/* 235 */
+EXTERN void Tcl_SetObjResult(Tcl_Interp *interp,
+ Tcl_Obj *resultObjPtr);
+/* 236 */
+EXTERN void Tcl_SetStdChannel(Tcl_Channel channel, int type);
+/* Slot 237 is reserved */
+/* 238 */
+EXTERN const char * Tcl_SetVar2(Tcl_Interp *interp, const char *part1,
+ const char *part2, const char *newValue,
+ int flags);
+/* 239 */
+EXTERN const char * Tcl_SignalId(int sig);
+/* 240 */
+EXTERN const char * Tcl_SignalMsg(int sig);
+/* 241 */
+EXTERN void Tcl_SourceRCFile(Tcl_Interp *interp);
+/* 242 */
+EXTERN int TclSplitList(Tcl_Interp *interp, const char *listStr,
+ void *argcPtr, const char ***argvPtr);
+/* 243 */
+EXTERN void TclSplitPath(const char *path, void *argcPtr,
+ const char ***argvPtr);
+/* Slot 244 is reserved */
+/* Slot 245 is reserved */
+/* Slot 246 is reserved */
+/* Slot 247 is reserved */
+/* 248 */
+EXTERN int Tcl_TraceVar2(Tcl_Interp *interp, const char *part1,
+ const char *part2, int flags,
+ Tcl_VarTraceProc *proc, void *clientData);
+/* 249 */
+EXTERN char * Tcl_TranslateFileName(Tcl_Interp *interp,
+ const char *name, Tcl_DString *bufferPtr);
+/* 250 */
+EXTERN Tcl_Size Tcl_Ungets(Tcl_Channel chan, const char *str,
+ Tcl_Size len, int atHead);
+/* 251 */
+EXTERN void Tcl_UnlinkVar(Tcl_Interp *interp,
+ const char *varName);
+/* 252 */
+EXTERN int Tcl_UnregisterChannel(Tcl_Interp *interp,
+ Tcl_Channel chan);
+/* Slot 253 is reserved */
+/* 254 */
+EXTERN int Tcl_UnsetVar2(Tcl_Interp *interp, const char *part1,
+ const char *part2, int flags);
+/* Slot 255 is reserved */
+/* 256 */
+EXTERN void Tcl_UntraceVar2(Tcl_Interp *interp,
+ const char *part1, const char *part2,
+ int flags, Tcl_VarTraceProc *proc,
+ void *clientData);
+/* 257 */
+EXTERN void Tcl_UpdateLinkedVar(Tcl_Interp *interp,
+ const char *varName);
+/* Slot 258 is reserved */
+/* 259 */
+EXTERN int Tcl_UpVar2(Tcl_Interp *interp, const char *frameName,
+ const char *part1, const char *part2,
+ const char *localName, int flags);
+/* 260 */
+EXTERN int Tcl_VarEval(Tcl_Interp *interp, ...);
+/* Slot 261 is reserved */
+/* 262 */
+EXTERN void * Tcl_VarTraceInfo2(Tcl_Interp *interp,
+ const char *part1, const char *part2,
+ int flags, Tcl_VarTraceProc *procPtr,
+ void *prevClientData);
+/* 263 */
+EXTERN Tcl_Size Tcl_Write(Tcl_Channel chan, const char *s,
+ Tcl_Size slen);
+/* 264 */
+EXTERN void Tcl_WrongNumArgs(Tcl_Interp *interp, Tcl_Size objc,
+ Tcl_Obj *const objv[], const char *message);
+/* 265 */
+EXTERN int Tcl_DumpActiveMemory(const char *fileName);
+/* 266 */
+EXTERN void Tcl_ValidateAllMemory(const char *file, int line);
+/* Slot 267 is reserved */
+/* Slot 268 is reserved */
+/* 269 */
+EXTERN char * Tcl_HashStats(Tcl_HashTable *tablePtr);
+/* 270 */
+EXTERN const char * Tcl_ParseVar(Tcl_Interp *interp, const char *start,
+ const char **termPtr);
+/* Slot 271 is reserved */
+/* 272 */
+EXTERN const char * Tcl_PkgPresentEx(Tcl_Interp *interp,
+ const char *name, const char *version,
+ int exact, void *clientDataPtr);
+/* Slot 273 is reserved */
+/* Slot 274 is reserved */
+/* Slot 275 is reserved */
+/* Slot 276 is reserved */
+/* 277 */
+EXTERN Tcl_Pid Tcl_WaitPid(Tcl_Pid pid, int *statPtr, int options);
+/* Slot 278 is reserved */
+/* 279 */
+EXTERN void Tcl_GetVersion(int *major, int *minor,
+ int *patchLevel, int *type);
+/* 280 */
+EXTERN void Tcl_InitMemory(Tcl_Interp *interp);
+/* 281 */
+EXTERN Tcl_Channel Tcl_StackChannel(Tcl_Interp *interp,
+ const Tcl_ChannelType *typePtr,
+ void *instanceData, int mask,
+ Tcl_Channel prevChan);
+/* 282 */
+EXTERN int Tcl_UnstackChannel(Tcl_Interp *interp,
+ Tcl_Channel chan);
+/* 283 */
+EXTERN Tcl_Channel Tcl_GetStackedChannel(Tcl_Channel chan);
+/* 284 */
+EXTERN void Tcl_SetMainLoop(Tcl_MainLoopProc *proc);
+/* 285 */
+EXTERN int Tcl_GetAliasObj(Tcl_Interp *interp,
+ const char *childCmd,
+ Tcl_Interp **targetInterpPtr,
+ const char **targetCmdPtr, Tcl_Size *objcPtr,
+ Tcl_Obj ***objvPtr);
+/* 286 */
+EXTERN void Tcl_AppendObjToObj(Tcl_Obj *objPtr,
+ Tcl_Obj *appendObjPtr);
+/* 287 */
+EXTERN Tcl_Encoding Tcl_CreateEncoding(const Tcl_EncodingType *typePtr);
+/* 288 */
+EXTERN void Tcl_CreateThreadExitHandler(Tcl_ExitProc *proc,
+ void *clientData);
+/* 289 */
+EXTERN void Tcl_DeleteThreadExitHandler(Tcl_ExitProc *proc,
+ void *clientData);
+/* Slot 290 is reserved */
+/* 291 */
+EXTERN int Tcl_EvalEx(Tcl_Interp *interp, const char *script,
+ Tcl_Size numBytes, int flags);
+/* 292 */
+EXTERN int Tcl_EvalObjv(Tcl_Interp *interp, Tcl_Size objc,
+ Tcl_Obj *const objv[], int flags);
+/* 293 */
+EXTERN int Tcl_EvalObjEx(Tcl_Interp *interp, Tcl_Obj *objPtr,
+ int flags);
+/* 294 */
+EXTERN TCL_NORETURN void Tcl_ExitThread(int status);
+/* 295 */
+EXTERN int Tcl_ExternalToUtf(Tcl_Interp *interp,
+ Tcl_Encoding encoding, const char *src,
+ Tcl_Size srcLen, int flags,
+ Tcl_EncodingState *statePtr, char *dst,
+ Tcl_Size dstLen, int *srcReadPtr,
+ int *dstWrotePtr, int *dstCharsPtr);
+/* 296 */
+EXTERN char * Tcl_ExternalToUtfDString(Tcl_Encoding encoding,
+ const char *src, Tcl_Size srcLen,
+ Tcl_DString *dsPtr);
+/* 297 */
+EXTERN void Tcl_FinalizeThread(void);
+/* 298 */
+EXTERN void Tcl_FinalizeNotifier(void *clientData);
+/* 299 */
+EXTERN void Tcl_FreeEncoding(Tcl_Encoding encoding);
+/* 300 */
+EXTERN Tcl_ThreadId Tcl_GetCurrentThread(void);
+/* 301 */
+EXTERN Tcl_Encoding Tcl_GetEncoding(Tcl_Interp *interp, const char *name);
+/* 302 */
+EXTERN const char * Tcl_GetEncodingName(Tcl_Encoding encoding);
+/* 303 */
+EXTERN void Tcl_GetEncodingNames(Tcl_Interp *interp);
+/* 304 */
+EXTERN int Tcl_GetIndexFromObjStruct(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, const void *tablePtr,
+ Tcl_Size offset, const char *msg, int flags,
+ void *indexPtr);
+/* 305 */
+EXTERN void * Tcl_GetThreadData(Tcl_ThreadDataKey *keyPtr,
+ Tcl_Size size);
+/* 306 */
+EXTERN Tcl_Obj * Tcl_GetVar2Ex(Tcl_Interp *interp, const char *part1,
+ const char *part2, int flags);
+/* 307 */
+EXTERN void * Tcl_InitNotifier(void);
+/* 308 */
+EXTERN void Tcl_MutexLock(Tcl_Mutex *mutexPtr);
+/* 309 */
+EXTERN void Tcl_MutexUnlock(Tcl_Mutex *mutexPtr);
+/* 310 */
+EXTERN void Tcl_ConditionNotify(Tcl_Condition *condPtr);
+/* 311 */
+EXTERN void Tcl_ConditionWait(Tcl_Condition *condPtr,
+ Tcl_Mutex *mutexPtr, const Tcl_Time *timePtr);
+/* 312 */
+EXTERN Tcl_Size TclNumUtfChars(const char *src, Tcl_Size length);
+/* 313 */
+EXTERN Tcl_Size Tcl_ReadChars(Tcl_Channel channel, Tcl_Obj *objPtr,
+ Tcl_Size charsToRead, int appendFlag);
+/* Slot 314 is reserved */
+/* Slot 315 is reserved */
+/* 316 */
+EXTERN int Tcl_SetSystemEncoding(Tcl_Interp *interp,
+ const char *name);
+/* 317 */
+EXTERN Tcl_Obj * Tcl_SetVar2Ex(Tcl_Interp *interp, const char *part1,
+ const char *part2, Tcl_Obj *newValuePtr,
+ int flags);
+/* 318 */
+EXTERN void Tcl_ThreadAlert(Tcl_ThreadId threadId);
+/* 319 */
+EXTERN void Tcl_ThreadQueueEvent(Tcl_ThreadId threadId,
+ Tcl_Event *evPtr, int position);
+/* 320 */
+EXTERN int Tcl_UniCharAtIndex(const char *src, Tcl_Size index);
+/* 321 */
+EXTERN int Tcl_UniCharToLower(int ch);
+/* 322 */
+EXTERN int Tcl_UniCharToTitle(int ch);
+/* 323 */
+EXTERN int Tcl_UniCharToUpper(int ch);
+/* 324 */
+EXTERN Tcl_Size Tcl_UniCharToUtf(int ch, char *buf);
+/* 325 */
+EXTERN const char * TclUtfAtIndex(const char *src, Tcl_Size index);
+/* 326 */
+EXTERN int TclUtfCharComplete(const char *src, Tcl_Size length);
+/* 327 */
+EXTERN Tcl_Size Tcl_UtfBackslash(const char *src, int *readPtr,
+ char *dst);
+/* 328 */
+EXTERN const char * Tcl_UtfFindFirst(const char *src, int ch);
+/* 329 */
+EXTERN const char * Tcl_UtfFindLast(const char *src, int ch);
+/* 330 */
+EXTERN const char * TclUtfNext(const char *src);
+/* 331 */
+EXTERN const char * TclUtfPrev(const char *src, const char *start);
+/* 332 */
+EXTERN int Tcl_UtfToExternal(Tcl_Interp *interp,
+ Tcl_Encoding encoding, const char *src,
+ Tcl_Size srcLen, int flags,
+ Tcl_EncodingState *statePtr, char *dst,
+ Tcl_Size dstLen, int *srcReadPtr,
+ int *dstWrotePtr, int *dstCharsPtr);
+/* 333 */
+EXTERN char * Tcl_UtfToExternalDString(Tcl_Encoding encoding,
+ const char *src, Tcl_Size srcLen,
+ Tcl_DString *dsPtr);
+/* 334 */
+EXTERN Tcl_Size Tcl_UtfToLower(char *src);
+/* 335 */
+EXTERN Tcl_Size Tcl_UtfToTitle(char *src);
+/* 336 */
+EXTERN Tcl_Size Tcl_UtfToChar16(const char *src,
+ unsigned short *chPtr);
+/* 337 */
+EXTERN Tcl_Size Tcl_UtfToUpper(char *src);
+/* 338 */
+EXTERN Tcl_Size Tcl_WriteChars(Tcl_Channel chan, const char *src,
+ Tcl_Size srcLen);
+/* 339 */
+EXTERN Tcl_Size Tcl_WriteObj(Tcl_Channel chan, Tcl_Obj *objPtr);
+/* 340 */
+EXTERN char * Tcl_GetString(Tcl_Obj *objPtr);
+/* Slot 341 is reserved */
+/* Slot 342 is reserved */
+/* 343 */
+EXTERN void Tcl_AlertNotifier(void *clientData);
+/* 344 */
+EXTERN void Tcl_ServiceModeHook(int mode);
+/* 345 */
+EXTERN int Tcl_UniCharIsAlnum(int ch);
+/* 346 */
+EXTERN int Tcl_UniCharIsAlpha(int ch);
+/* 347 */
+EXTERN int Tcl_UniCharIsDigit(int ch);
+/* 348 */
+EXTERN int Tcl_UniCharIsLower(int ch);
+/* 349 */
+EXTERN int Tcl_UniCharIsSpace(int ch);
+/* 350 */
+EXTERN int Tcl_UniCharIsUpper(int ch);
+/* 351 */
+EXTERN int Tcl_UniCharIsWordChar(int ch);
+/* 352 */
+EXTERN Tcl_Size Tcl_Char16Len(const unsigned short *uniStr);
+/* Slot 353 is reserved */
+/* 354 */
+EXTERN char * Tcl_Char16ToUtfDString(const unsigned short *uniStr,
+ Tcl_Size uniLength, Tcl_DString *dsPtr);
+/* 355 */
+EXTERN unsigned short * Tcl_UtfToChar16DString(const char *src,
+ Tcl_Size length, Tcl_DString *dsPtr);
+/* 356 */
+EXTERN Tcl_RegExp Tcl_GetRegExpFromObj(Tcl_Interp *interp,
+ Tcl_Obj *patObj, int flags);
+/* Slot 357 is reserved */
+/* 358 */
+EXTERN void Tcl_FreeParse(Tcl_Parse *parsePtr);
+/* 359 */
+EXTERN void Tcl_LogCommandInfo(Tcl_Interp *interp,
+ const char *script, const char *command,
+ Tcl_Size length);
+/* 360 */
+EXTERN int Tcl_ParseBraces(Tcl_Interp *interp,
+ const char *start, Tcl_Size numBytes,
+ Tcl_Parse *parsePtr, int append,
+ const char **termPtr);
+/* 361 */
+EXTERN int Tcl_ParseCommand(Tcl_Interp *interp,
+ const char *start, Tcl_Size numBytes,
+ int nested, Tcl_Parse *parsePtr);
+/* 362 */
+EXTERN int Tcl_ParseExpr(Tcl_Interp *interp, const char *start,
+ Tcl_Size numBytes, Tcl_Parse *parsePtr);
+/* 363 */
+EXTERN int Tcl_ParseQuotedString(Tcl_Interp *interp,
+ const char *start, Tcl_Size numBytes,
+ Tcl_Parse *parsePtr, int append,
+ const char **termPtr);
+/* 364 */
+EXTERN int Tcl_ParseVarName(Tcl_Interp *interp,
+ const char *start, Tcl_Size numBytes,
+ Tcl_Parse *parsePtr, int append);
+/* 365 */
+EXTERN char * Tcl_GetCwd(Tcl_Interp *interp, Tcl_DString *cwdPtr);
+/* 366 */
+EXTERN int Tcl_Chdir(const char *dirName);
+/* 367 */
+EXTERN int Tcl_Access(const char *path, int mode);
+/* 368 */
+EXTERN int Tcl_Stat(const char *path, struct stat *bufPtr);
+/* 369 */
+EXTERN int TclUtfNcmp(const char *s1, const char *s2, size_t n);
+/* 370 */
+EXTERN int TclUtfNcasecmp(const char *s1, const char *s2,
+ size_t n);
+/* 371 */
+EXTERN int Tcl_StringCaseMatch(const char *str,
+ const char *pattern, int nocase);
+/* 372 */
+EXTERN int Tcl_UniCharIsControl(int ch);
+/* 373 */
+EXTERN int Tcl_UniCharIsGraph(int ch);
+/* 374 */
+EXTERN int Tcl_UniCharIsPrint(int ch);
+/* 375 */
+EXTERN int Tcl_UniCharIsPunct(int ch);
+/* 376 */
+EXTERN int Tcl_RegExpExecObj(Tcl_Interp *interp,
+ Tcl_RegExp regexp, Tcl_Obj *textObj,
+ Tcl_Size offset, Tcl_Size nmatches,
+ int flags);
+/* 377 */
+EXTERN void Tcl_RegExpGetInfo(Tcl_RegExp regexp,
+ Tcl_RegExpInfo *infoPtr);
+/* 378 */
+EXTERN Tcl_Obj * Tcl_NewUnicodeObj(const Tcl_UniChar *unicode,
+ Tcl_Size numChars);
+/* 379 */
+EXTERN void Tcl_SetUnicodeObj(Tcl_Obj *objPtr,
+ const Tcl_UniChar *unicode,
+ Tcl_Size numChars);
+/* 380 */
+EXTERN Tcl_Size TclGetCharLength(Tcl_Obj *objPtr);
+/* 381 */
+EXTERN int TclGetUniChar(Tcl_Obj *objPtr, Tcl_Size index);
+/* Slot 382 is reserved */
+/* 383 */
+EXTERN Tcl_Obj * TclGetRange(Tcl_Obj *objPtr, Tcl_Size first,
+ Tcl_Size last);
+/* 384 */
+EXTERN void Tcl_AppendUnicodeToObj(Tcl_Obj *objPtr,
+ const Tcl_UniChar *unicode, Tcl_Size length);
+/* 385 */
+EXTERN int Tcl_RegExpMatchObj(Tcl_Interp *interp,
+ Tcl_Obj *textObj, Tcl_Obj *patternObj);
+/* 386 */
+EXTERN void Tcl_SetNotifier(
+ const Tcl_NotifierProcs *notifierProcPtr);
+/* 387 */
+EXTERN Tcl_Mutex * Tcl_GetAllocMutex(void);
+/* 388 */
+EXTERN int Tcl_GetChannelNames(Tcl_Interp *interp);
+/* 389 */
+EXTERN int Tcl_GetChannelNamesEx(Tcl_Interp *interp,
+ const char *pattern);
+/* 390 */
+EXTERN int Tcl_ProcObjCmd(void *clientData, Tcl_Interp *interp,
+ Tcl_Size objc, Tcl_Obj *const objv[]);
+/* 391 */
+EXTERN void Tcl_ConditionFinalize(Tcl_Condition *condPtr);
+/* 392 */
+EXTERN void Tcl_MutexFinalize(Tcl_Mutex *mutex);
+/* 393 */
+EXTERN int Tcl_CreateThread(Tcl_ThreadId *idPtr,
+ Tcl_ThreadCreateProc *proc, void *clientData,
+ TCL_HASH_TYPE stackSize, int flags);
+/* 394 */
+EXTERN Tcl_Size Tcl_ReadRaw(Tcl_Channel chan, char *dst,
+ Tcl_Size bytesToRead);
+/* 395 */
+EXTERN Tcl_Size Tcl_WriteRaw(Tcl_Channel chan, const char *src,
+ Tcl_Size srcLen);
+/* 396 */
+EXTERN Tcl_Channel Tcl_GetTopChannel(Tcl_Channel chan);
+/* 397 */
+EXTERN int Tcl_ChannelBuffered(Tcl_Channel chan);
+/* 398 */
+EXTERN const char * Tcl_ChannelName(const Tcl_ChannelType *chanTypePtr);
+/* 399 */
+EXTERN Tcl_ChannelTypeVersion Tcl_ChannelVersion(
+ const Tcl_ChannelType *chanTypePtr);
+/* 400 */
+EXTERN Tcl_DriverBlockModeProc * Tcl_ChannelBlockModeProc(
+ const Tcl_ChannelType *chanTypePtr);
+/* Slot 401 is reserved */
+/* 402 */
+EXTERN Tcl_DriverClose2Proc * Tcl_ChannelClose2Proc(
+ const Tcl_ChannelType *chanTypePtr);
+/* 403 */
+EXTERN Tcl_DriverInputProc * Tcl_ChannelInputProc(
+ const Tcl_ChannelType *chanTypePtr);
+/* 404 */
+EXTERN Tcl_DriverOutputProc * Tcl_ChannelOutputProc(
+ const Tcl_ChannelType *chanTypePtr);
+/* Slot 405 is reserved */
+/* 406 */
+EXTERN Tcl_DriverSetOptionProc * Tcl_ChannelSetOptionProc(
+ const Tcl_ChannelType *chanTypePtr);
+/* 407 */
+EXTERN Tcl_DriverGetOptionProc * Tcl_ChannelGetOptionProc(
+ const Tcl_ChannelType *chanTypePtr);
+/* 408 */
+EXTERN Tcl_DriverWatchProc * Tcl_ChannelWatchProc(
+ const Tcl_ChannelType *chanTypePtr);
+/* 409 */
+EXTERN Tcl_DriverGetHandleProc * Tcl_ChannelGetHandleProc(
+ const Tcl_ChannelType *chanTypePtr);
+/* 410 */
+EXTERN Tcl_DriverFlushProc * Tcl_ChannelFlushProc(
+ const Tcl_ChannelType *chanTypePtr);
+/* 411 */
+EXTERN Tcl_DriverHandlerProc * Tcl_ChannelHandlerProc(
+ const Tcl_ChannelType *chanTypePtr);
+/* 412 */
+EXTERN int Tcl_JoinThread(Tcl_ThreadId threadId, int *result);
+/* 413 */
+EXTERN int Tcl_IsChannelShared(Tcl_Channel channel);
+/* 414 */
+EXTERN int Tcl_IsChannelRegistered(Tcl_Interp *interp,
+ Tcl_Channel channel);
+/* 415 */
+EXTERN void Tcl_CutChannel(Tcl_Channel channel);
+/* 416 */
+EXTERN void Tcl_SpliceChannel(Tcl_Channel channel);
+/* 417 */
+EXTERN void Tcl_ClearChannelHandlers(Tcl_Channel channel);
+/* 418 */
+EXTERN int Tcl_IsChannelExisting(const char *channelName);
+/* Slot 419 is reserved */
+/* Slot 420 is reserved */
+/* Slot 421 is reserved */
+/* 422 */
+EXTERN Tcl_HashEntry * Tcl_CreateHashEntry(Tcl_HashTable *tablePtr,
+ const void *key, int *newPtr);
+/* 423 */
+EXTERN void Tcl_InitCustomHashTable(Tcl_HashTable *tablePtr,
+ int keyType, const Tcl_HashKeyType *typePtr);
+/* 424 */
+EXTERN void Tcl_InitObjHashTable(Tcl_HashTable *tablePtr);
+/* 425 */
+EXTERN void * Tcl_CommandTraceInfo(Tcl_Interp *interp,
+ const char *varName, int flags,
+ Tcl_CommandTraceProc *procPtr,
+ void *prevClientData);
+/* 426 */
+EXTERN int Tcl_TraceCommand(Tcl_Interp *interp,
+ const char *varName, int flags,
+ Tcl_CommandTraceProc *proc, void *clientData);
+/* 427 */
+EXTERN void Tcl_UntraceCommand(Tcl_Interp *interp,
+ const char *varName, int flags,
+ Tcl_CommandTraceProc *proc, void *clientData);
+/* 428 */
+EXTERN void * Tcl_AttemptAlloc(TCL_HASH_TYPE size);
+/* 429 */
+EXTERN void * Tcl_AttemptDbCkalloc(TCL_HASH_TYPE size,
+ const char *file, int line);
+/* 430 */
+EXTERN void * Tcl_AttemptRealloc(void *ptr, TCL_HASH_TYPE size);
+/* 431 */
+EXTERN void * Tcl_AttemptDbCkrealloc(void *ptr, TCL_HASH_TYPE size,
+ const char *file, int line);
+/* 432 */
+EXTERN int Tcl_AttemptSetObjLength(Tcl_Obj *objPtr,
+ Tcl_Size length);
+/* 433 */
+EXTERN Tcl_ThreadId Tcl_GetChannelThread(Tcl_Channel channel);
+/* 434 */
+EXTERN Tcl_UniChar * TclGetUnicodeFromObj(Tcl_Obj *objPtr,
+ void *lengthPtr);
+/* Slot 435 is reserved */
+/* Slot 436 is reserved */
+/* 437 */
+EXTERN Tcl_Obj * Tcl_SubstObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
+ int flags);
+/* 438 */
+EXTERN int Tcl_DetachChannel(Tcl_Interp *interp,
+ Tcl_Channel channel);
+/* 439 */
+EXTERN int Tcl_IsStandardChannel(Tcl_Channel channel);
+/* 440 */
+EXTERN int Tcl_FSCopyFile(Tcl_Obj *srcPathPtr,
+ Tcl_Obj *destPathPtr);
+/* 441 */
+EXTERN int Tcl_FSCopyDirectory(Tcl_Obj *srcPathPtr,
+ Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr);
+/* 442 */
+EXTERN int Tcl_FSCreateDirectory(Tcl_Obj *pathPtr);
+/* 443 */
+EXTERN int Tcl_FSDeleteFile(Tcl_Obj *pathPtr);
+/* 444 */
+EXTERN int Tcl_FSLoadFile(Tcl_Interp *interp, Tcl_Obj *pathPtr,
+ const char *sym1, const char *sym2,
+ Tcl_LibraryInitProc **proc1Ptr,
+ Tcl_LibraryInitProc **proc2Ptr,
+ Tcl_LoadHandle *handlePtr,
+ Tcl_FSUnloadFileProc **unloadProcPtr);
+/* 445 */
+EXTERN int Tcl_FSMatchInDirectory(Tcl_Interp *interp,
+ Tcl_Obj *result, Tcl_Obj *pathPtr,
+ const char *pattern, Tcl_GlobTypeData *types);
+/* 446 */
+EXTERN Tcl_Obj * Tcl_FSLink(Tcl_Obj *pathPtr, Tcl_Obj *toPtr,
+ int linkAction);
+/* 447 */
+EXTERN int Tcl_FSRemoveDirectory(Tcl_Obj *pathPtr,
+ int recursive, Tcl_Obj **errorPtr);
+/* 448 */
+EXTERN int Tcl_FSRenameFile(Tcl_Obj *srcPathPtr,
+ Tcl_Obj *destPathPtr);
+/* 449 */
+EXTERN int Tcl_FSLstat(Tcl_Obj *pathPtr, Tcl_StatBuf *buf);
+/* 450 */
+EXTERN int Tcl_FSUtime(Tcl_Obj *pathPtr, struct utimbuf *tval);
+/* 451 */
+EXTERN int Tcl_FSFileAttrsGet(Tcl_Interp *interp, int index,
+ Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef);
+/* 452 */
+EXTERN int Tcl_FSFileAttrsSet(Tcl_Interp *interp, int index,
+ Tcl_Obj *pathPtr, Tcl_Obj *objPtr);
+/* 453 */
+EXTERN const char *const * Tcl_FSFileAttrStrings(Tcl_Obj *pathPtr,
+ Tcl_Obj **objPtrRef);
+/* 454 */
+EXTERN int Tcl_FSStat(Tcl_Obj *pathPtr, Tcl_StatBuf *buf);
+/* 455 */
+EXTERN int Tcl_FSAccess(Tcl_Obj *pathPtr, int mode);
+/* 456 */
+EXTERN Tcl_Channel Tcl_FSOpenFileChannel(Tcl_Interp *interp,
+ Tcl_Obj *pathPtr, const char *modeString,
+ int permissions);
+/* 457 */
+EXTERN Tcl_Obj * Tcl_FSGetCwd(Tcl_Interp *interp);
+/* 458 */
+EXTERN int Tcl_FSChdir(Tcl_Obj *pathPtr);
+/* 459 */
+EXTERN int Tcl_FSConvertToPathType(Tcl_Interp *interp,
+ Tcl_Obj *pathPtr);
+/* 460 */
+EXTERN Tcl_Obj * Tcl_FSJoinPath(Tcl_Obj *listObj, Tcl_Size elements);
+/* 461 */
+EXTERN Tcl_Obj * TclFSSplitPath(Tcl_Obj *pathPtr, void *lenPtr);
+/* 462 */
+EXTERN int Tcl_FSEqualPaths(Tcl_Obj *firstPtr,
+ Tcl_Obj *secondPtr);
+/* 463 */
+EXTERN Tcl_Obj * Tcl_FSGetNormalizedPath(Tcl_Interp *interp,
+ Tcl_Obj *pathPtr);
+/* 464 */
+EXTERN Tcl_Obj * Tcl_FSJoinToPath(Tcl_Obj *pathPtr, Tcl_Size objc,
+ Tcl_Obj *const objv[]);
+/* 465 */
+EXTERN void * Tcl_FSGetInternalRep(Tcl_Obj *pathPtr,
+ const Tcl_Filesystem *fsPtr);
+/* 466 */
+EXTERN Tcl_Obj * Tcl_FSGetTranslatedPath(Tcl_Interp *interp,
+ Tcl_Obj *pathPtr);
+/* 467 */
+EXTERN int Tcl_FSEvalFile(Tcl_Interp *interp, Tcl_Obj *fileName);
+/* 468 */
+EXTERN Tcl_Obj * Tcl_FSNewNativePath(
+ const Tcl_Filesystem *fromFilesystem,
+ void *clientData);
+/* 469 */
+EXTERN const void * Tcl_FSGetNativePath(Tcl_Obj *pathPtr);
+/* 470 */
+EXTERN Tcl_Obj * Tcl_FSFileSystemInfo(Tcl_Obj *pathPtr);
+/* 471 */
+EXTERN Tcl_Obj * Tcl_FSPathSeparator(Tcl_Obj *pathPtr);
+/* 472 */
+EXTERN Tcl_Obj * Tcl_FSListVolumes(void);
+/* 473 */
+EXTERN int Tcl_FSRegister(void *clientData,
+ const Tcl_Filesystem *fsPtr);
+/* 474 */
+EXTERN int Tcl_FSUnregister(const Tcl_Filesystem *fsPtr);
+/* 475 */
+EXTERN void * Tcl_FSData(const Tcl_Filesystem *fsPtr);
+/* 476 */
+EXTERN const char * Tcl_FSGetTranslatedStringPath(Tcl_Interp *interp,
+ Tcl_Obj *pathPtr);
+/* 477 */
+EXTERN const Tcl_Filesystem * Tcl_FSGetFileSystemForPath(Tcl_Obj *pathPtr);
+/* 478 */
+EXTERN Tcl_PathType Tcl_FSGetPathType(Tcl_Obj *pathPtr);
+/* 479 */
+EXTERN int Tcl_OutputBuffered(Tcl_Channel chan);
+/* 480 */
+EXTERN void Tcl_FSMountsChanged(const Tcl_Filesystem *fsPtr);
+/* 481 */
+EXTERN int Tcl_EvalTokensStandard(Tcl_Interp *interp,
+ Tcl_Token *tokenPtr, Tcl_Size count);
+/* 482 */
+EXTERN void Tcl_GetTime(Tcl_Time *timeBuf);
+/* 483 */
+EXTERN Tcl_Trace Tcl_CreateObjTrace(Tcl_Interp *interp,
+ Tcl_Size level, int flags,
+ Tcl_CmdObjTraceProc *objProc,
+ void *clientData,
+ Tcl_CmdObjTraceDeleteProc *delProc);
+/* 484 */
+EXTERN int Tcl_GetCommandInfoFromToken(Tcl_Command token,
+ Tcl_CmdInfo *infoPtr);
+/* 485 */
+EXTERN int Tcl_SetCommandInfoFromToken(Tcl_Command token,
+ const Tcl_CmdInfo *infoPtr);
+/* 486 */
+EXTERN Tcl_Obj * Tcl_DbNewWideIntObj(Tcl_WideInt wideValue,
+ const char *file, int line);
+/* 487 */
+EXTERN int Tcl_GetWideIntFromObj(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, Tcl_WideInt *widePtr);
+/* 488 */
+EXTERN Tcl_Obj * Tcl_NewWideIntObj(Tcl_WideInt wideValue);
+/* 489 */
+EXTERN void Tcl_SetWideIntObj(Tcl_Obj *objPtr,
+ Tcl_WideInt wideValue);
+/* 490 */
+EXTERN Tcl_StatBuf * Tcl_AllocStatBuf(void);
+/* 491 */
+EXTERN long long Tcl_Seek(Tcl_Channel chan, long long offset,
+ int mode);
+/* 492 */
+EXTERN long long Tcl_Tell(Tcl_Channel chan);
+/* 493 */
+EXTERN Tcl_DriverWideSeekProc * Tcl_ChannelWideSeekProc(
+ const Tcl_ChannelType *chanTypePtr);
+/* 494 */
+EXTERN int Tcl_DictObjPut(Tcl_Interp *interp, Tcl_Obj *dictPtr,
+ Tcl_Obj *keyPtr, Tcl_Obj *valuePtr);
+/* 495 */
+EXTERN int Tcl_DictObjGet(Tcl_Interp *interp, Tcl_Obj *dictPtr,
+ Tcl_Obj *keyPtr, Tcl_Obj **valuePtrPtr);
+/* 496 */
+EXTERN int Tcl_DictObjRemove(Tcl_Interp *interp,
+ Tcl_Obj *dictPtr, Tcl_Obj *keyPtr);
+/* 497 */
+EXTERN int TclDictObjSize(Tcl_Interp *interp, Tcl_Obj *dictPtr,
+ void *sizePtr);
+/* 498 */
+EXTERN int Tcl_DictObjFirst(Tcl_Interp *interp,
+ Tcl_Obj *dictPtr, Tcl_DictSearch *searchPtr,
+ Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr,
+ int *donePtr);
+/* 499 */
+EXTERN void Tcl_DictObjNext(Tcl_DictSearch *searchPtr,
+ Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr,
+ int *donePtr);
+/* 500 */
+EXTERN void Tcl_DictObjDone(Tcl_DictSearch *searchPtr);
+/* 501 */
+EXTERN int Tcl_DictObjPutKeyList(Tcl_Interp *interp,
+ Tcl_Obj *dictPtr, Tcl_Size keyc,
+ Tcl_Obj *const *keyv, Tcl_Obj *valuePtr);
+/* 502 */
+EXTERN int Tcl_DictObjRemoveKeyList(Tcl_Interp *interp,
+ Tcl_Obj *dictPtr, Tcl_Size keyc,
+ Tcl_Obj *const *keyv);
+/* 503 */
+EXTERN Tcl_Obj * Tcl_NewDictObj(void);
+/* 504 */
+EXTERN Tcl_Obj * Tcl_DbNewDictObj(const char *file, int line);
+/* 505 */
+EXTERN void Tcl_RegisterConfig(Tcl_Interp *interp,
+ const char *pkgName,
+ const Tcl_Config *configuration,
+ const char *valEncoding);
+/* 506 */
+EXTERN Tcl_Namespace * Tcl_CreateNamespace(Tcl_Interp *interp,
+ const char *name, void *clientData,
+ Tcl_NamespaceDeleteProc *deleteProc);
+/* 507 */
+EXTERN void Tcl_DeleteNamespace(Tcl_Namespace *nsPtr);
+/* 508 */
+EXTERN int Tcl_AppendExportList(Tcl_Interp *interp,
+ Tcl_Namespace *nsPtr, Tcl_Obj *objPtr);
+/* 509 */
+EXTERN int Tcl_Export(Tcl_Interp *interp, Tcl_Namespace *nsPtr,
+ const char *pattern, int resetListFirst);
+/* 510 */
+EXTERN int Tcl_Import(Tcl_Interp *interp, Tcl_Namespace *nsPtr,
+ const char *pattern, int allowOverwrite);
+/* 511 */
+EXTERN int Tcl_ForgetImport(Tcl_Interp *interp,
+ Tcl_Namespace *nsPtr, const char *pattern);
+/* 512 */
+EXTERN Tcl_Namespace * Tcl_GetCurrentNamespace(Tcl_Interp *interp);
+/* 513 */
+EXTERN Tcl_Namespace * Tcl_GetGlobalNamespace(Tcl_Interp *interp);
+/* 514 */
+EXTERN Tcl_Namespace * Tcl_FindNamespace(Tcl_Interp *interp,
+ const char *name,
+ Tcl_Namespace *contextNsPtr, int flags);
+/* 515 */
+EXTERN Tcl_Command Tcl_FindCommand(Tcl_Interp *interp, const char *name,
+ Tcl_Namespace *contextNsPtr, int flags);
+/* 516 */
+EXTERN Tcl_Command Tcl_GetCommandFromObj(Tcl_Interp *interp,
+ Tcl_Obj *objPtr);
+/* 517 */
+EXTERN void Tcl_GetCommandFullName(Tcl_Interp *interp,
+ Tcl_Command command, Tcl_Obj *objPtr);
+/* 518 */
+EXTERN int Tcl_FSEvalFileEx(Tcl_Interp *interp,
+ Tcl_Obj *fileName, const char *encodingName);
+/* Slot 519 is reserved */
+/* 520 */
+EXTERN void Tcl_LimitAddHandler(Tcl_Interp *interp, int type,
+ Tcl_LimitHandlerProc *handlerProc,
+ void *clientData,
+ Tcl_LimitHandlerDeleteProc *deleteProc);
+/* 521 */
+EXTERN void Tcl_LimitRemoveHandler(Tcl_Interp *interp, int type,
+ Tcl_LimitHandlerProc *handlerProc,
+ void *clientData);
+/* 522 */
+EXTERN int Tcl_LimitReady(Tcl_Interp *interp);
+/* 523 */
+EXTERN int Tcl_LimitCheck(Tcl_Interp *interp);
+/* 524 */
+EXTERN int Tcl_LimitExceeded(Tcl_Interp *interp);
+/* 525 */
+EXTERN void Tcl_LimitSetCommands(Tcl_Interp *interp,
+ Tcl_Size commandLimit);
+/* 526 */
+EXTERN void Tcl_LimitSetTime(Tcl_Interp *interp,
+ Tcl_Time *timeLimitPtr);
+/* 527 */
+EXTERN void Tcl_LimitSetGranularity(Tcl_Interp *interp, int type,
+ int granularity);
+/* 528 */
+EXTERN int Tcl_LimitTypeEnabled(Tcl_Interp *interp, int type);
+/* 529 */
+EXTERN int Tcl_LimitTypeExceeded(Tcl_Interp *interp, int type);
+/* 530 */
+EXTERN void Tcl_LimitTypeSet(Tcl_Interp *interp, int type);
+/* 531 */
+EXTERN void Tcl_LimitTypeReset(Tcl_Interp *interp, int type);
+/* 532 */
+EXTERN Tcl_Size Tcl_LimitGetCommands(Tcl_Interp *interp);
+/* 533 */
+EXTERN void Tcl_LimitGetTime(Tcl_Interp *interp,
+ Tcl_Time *timeLimitPtr);
+/* 534 */
+EXTERN int Tcl_LimitGetGranularity(Tcl_Interp *interp, int type);
+/* 535 */
+EXTERN Tcl_InterpState Tcl_SaveInterpState(Tcl_Interp *interp, int status);
+/* 536 */
+EXTERN int Tcl_RestoreInterpState(Tcl_Interp *interp,
+ Tcl_InterpState state);
+/* 537 */
+EXTERN void Tcl_DiscardInterpState(Tcl_InterpState state);
+/* 538 */
+EXTERN int Tcl_SetReturnOptions(Tcl_Interp *interp,
+ Tcl_Obj *options);
+/* 539 */
+EXTERN Tcl_Obj * Tcl_GetReturnOptions(Tcl_Interp *interp, int result);
+/* 540 */
+EXTERN int Tcl_IsEnsemble(Tcl_Command token);
+/* 541 */
+EXTERN Tcl_Command Tcl_CreateEnsemble(Tcl_Interp *interp,
+ const char *name,
+ Tcl_Namespace *namespacePtr, int flags);
+/* 542 */
+EXTERN Tcl_Command Tcl_FindEnsemble(Tcl_Interp *interp,
+ Tcl_Obj *cmdNameObj, int flags);
+/* 543 */
+EXTERN int Tcl_SetEnsembleSubcommandList(Tcl_Interp *interp,
+ Tcl_Command token, Tcl_Obj *subcmdList);
+/* 544 */
+EXTERN int Tcl_SetEnsembleMappingDict(Tcl_Interp *interp,
+ Tcl_Command token, Tcl_Obj *mapDict);
+/* 545 */
+EXTERN int Tcl_SetEnsembleUnknownHandler(Tcl_Interp *interp,
+ Tcl_Command token, Tcl_Obj *unknownList);
+/* 546 */
+EXTERN int Tcl_SetEnsembleFlags(Tcl_Interp *interp,
+ Tcl_Command token, int flags);
+/* 547 */
+EXTERN int Tcl_GetEnsembleSubcommandList(Tcl_Interp *interp,
+ Tcl_Command token, Tcl_Obj **subcmdListPtr);
+/* 548 */
+EXTERN int Tcl_GetEnsembleMappingDict(Tcl_Interp *interp,
+ Tcl_Command token, Tcl_Obj **mapDictPtr);
+/* 549 */
+EXTERN int Tcl_GetEnsembleUnknownHandler(Tcl_Interp *interp,
+ Tcl_Command token, Tcl_Obj **unknownListPtr);
+/* 550 */
+EXTERN int Tcl_GetEnsembleFlags(Tcl_Interp *interp,
+ Tcl_Command token, int *flagsPtr);
+/* 551 */
+EXTERN int Tcl_GetEnsembleNamespace(Tcl_Interp *interp,
+ Tcl_Command token,
+ Tcl_Namespace **namespacePtrPtr);
+/* 552 */
+EXTERN void Tcl_SetTimeProc(Tcl_GetTimeProc *getProc,
+ Tcl_ScaleTimeProc *scaleProc,
+ void *clientData);
+/* 553 */
+EXTERN void Tcl_QueryTimeProc(Tcl_GetTimeProc **getProc,
+ Tcl_ScaleTimeProc **scaleProc,
+ void **clientData);
+/* 554 */
+EXTERN Tcl_DriverThreadActionProc * Tcl_ChannelThreadActionProc(
+ const Tcl_ChannelType *chanTypePtr);
+/* 555 */
+EXTERN Tcl_Obj * Tcl_NewBignumObj(void *value);
+/* 556 */
+EXTERN Tcl_Obj * Tcl_DbNewBignumObj(void *value, const char *file,
+ int line);
+/* 557 */
+EXTERN void Tcl_SetBignumObj(Tcl_Obj *obj, void *value);
+/* 558 */
+EXTERN int Tcl_GetBignumFromObj(Tcl_Interp *interp,
+ Tcl_Obj *obj, void *value);
+/* 559 */
+EXTERN int Tcl_TakeBignumFromObj(Tcl_Interp *interp,
+ Tcl_Obj *obj, void *value);
+/* 560 */
+EXTERN int Tcl_TruncateChannel(Tcl_Channel chan,
+ long long length);
+/* 561 */
+EXTERN Tcl_DriverTruncateProc * Tcl_ChannelTruncateProc(
+ const Tcl_ChannelType *chanTypePtr);
+/* 562 */
+EXTERN void Tcl_SetChannelErrorInterp(Tcl_Interp *interp,
+ Tcl_Obj *msg);
+/* 563 */
+EXTERN void Tcl_GetChannelErrorInterp(Tcl_Interp *interp,
+ Tcl_Obj **msg);
+/* 564 */
+EXTERN void Tcl_SetChannelError(Tcl_Channel chan, Tcl_Obj *msg);
+/* 565 */
+EXTERN void Tcl_GetChannelError(Tcl_Channel chan, Tcl_Obj **msg);
+/* 566 */
+EXTERN int Tcl_InitBignumFromDouble(Tcl_Interp *interp,
+ double initval, void *toInit);
+/* 567 */
+EXTERN Tcl_Obj * Tcl_GetNamespaceUnknownHandler(Tcl_Interp *interp,
+ Tcl_Namespace *nsPtr);
+/* 568 */
+EXTERN int Tcl_SetNamespaceUnknownHandler(Tcl_Interp *interp,
+ Tcl_Namespace *nsPtr, Tcl_Obj *handlerPtr);
+/* 569 */
+EXTERN int Tcl_GetEncodingFromObj(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, Tcl_Encoding *encodingPtr);
+/* 570 */
+EXTERN Tcl_Obj * Tcl_GetEncodingSearchPath(void);
+/* 571 */
+EXTERN int Tcl_SetEncodingSearchPath(Tcl_Obj *searchPath);
+/* 572 */
+EXTERN const char * Tcl_GetEncodingNameFromEnvironment(
+ Tcl_DString *bufPtr);
+/* 573 */
+EXTERN int Tcl_PkgRequireProc(Tcl_Interp *interp,
+ const char *name, Tcl_Size objc,
+ Tcl_Obj *const objv[], void *clientDataPtr);
+/* 574 */
+EXTERN void Tcl_AppendObjToErrorInfo(Tcl_Interp *interp,
+ Tcl_Obj *objPtr);
+/* 575 */
+EXTERN void Tcl_AppendLimitedToObj(Tcl_Obj *objPtr,
+ const char *bytes, Tcl_Size length,
+ Tcl_Size limit, const char *ellipsis);
+/* 576 */
+EXTERN Tcl_Obj * Tcl_Format(Tcl_Interp *interp, const char *format,
+ Tcl_Size objc, Tcl_Obj *const objv[]);
+/* 577 */
+EXTERN int Tcl_AppendFormatToObj(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, const char *format,
+ Tcl_Size objc, Tcl_Obj *const objv[]);
+/* 578 */
+EXTERN Tcl_Obj * Tcl_ObjPrintf(const char *format, ...) TCL_FORMAT_PRINTF(1, 2);
+/* 579 */
+EXTERN void Tcl_AppendPrintfToObj(Tcl_Obj *objPtr,
+ const char *format, ...) TCL_FORMAT_PRINTF(2, 3);
+/* 580 */
+EXTERN int Tcl_CancelEval(Tcl_Interp *interp,
+ Tcl_Obj *resultObjPtr, void *clientData,
+ int flags);
+/* 581 */
+EXTERN int Tcl_Canceled(Tcl_Interp *interp, int flags);
+/* 582 */
+EXTERN int Tcl_CreatePipe(Tcl_Interp *interp,
+ Tcl_Channel *rchan, Tcl_Channel *wchan,
+ int flags);
+/* 583 */
+EXTERN Tcl_Command Tcl_NRCreateCommand(Tcl_Interp *interp,
+ const char *cmdName, Tcl_ObjCmdProc *proc,
+ Tcl_ObjCmdProc *nreProc, void *clientData,
+ Tcl_CmdDeleteProc *deleteProc);
+/* 584 */
+EXTERN int Tcl_NREvalObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
+ int flags);
+/* 585 */
+EXTERN int Tcl_NREvalObjv(Tcl_Interp *interp, Tcl_Size objc,
+ Tcl_Obj *const objv[], int flags);
+/* 586 */
+EXTERN int Tcl_NRCmdSwap(Tcl_Interp *interp, Tcl_Command cmd,
+ Tcl_Size objc, Tcl_Obj *const objv[],
+ int flags);
+/* 587 */
+EXTERN void Tcl_NRAddCallback(Tcl_Interp *interp,
+ Tcl_NRPostProc *postProcPtr, void *data0,
+ void *data1, void *data2, void *data3);
+/* 588 */
+EXTERN int Tcl_NRCallObjProc(Tcl_Interp *interp,
+ Tcl_ObjCmdProc *objProc, void *clientData,
+ Tcl_Size objc, Tcl_Obj *const objv[]);
+/* 589 */
+EXTERN unsigned Tcl_GetFSDeviceFromStat(const Tcl_StatBuf *statPtr);
+/* 590 */
+EXTERN unsigned Tcl_GetFSInodeFromStat(const Tcl_StatBuf *statPtr);
+/* 591 */
+EXTERN unsigned Tcl_GetModeFromStat(const Tcl_StatBuf *statPtr);
+/* 592 */
+EXTERN int Tcl_GetLinkCountFromStat(const Tcl_StatBuf *statPtr);
+/* 593 */
+EXTERN int Tcl_GetUserIdFromStat(const Tcl_StatBuf *statPtr);
+/* 594 */
+EXTERN int Tcl_GetGroupIdFromStat(const Tcl_StatBuf *statPtr);
+/* 595 */
+EXTERN int Tcl_GetDeviceTypeFromStat(const Tcl_StatBuf *statPtr);
+/* 596 */
+EXTERN long long Tcl_GetAccessTimeFromStat(const Tcl_StatBuf *statPtr);
+/* 597 */
+EXTERN long long Tcl_GetModificationTimeFromStat(
+ const Tcl_StatBuf *statPtr);
+/* 598 */
+EXTERN long long Tcl_GetChangeTimeFromStat(const Tcl_StatBuf *statPtr);
+/* 599 */
+EXTERN unsigned long long Tcl_GetSizeFromStat(const Tcl_StatBuf *statPtr);
+/* 600 */
+EXTERN unsigned long long Tcl_GetBlocksFromStat(const Tcl_StatBuf *statPtr);
+/* 601 */
+EXTERN unsigned Tcl_GetBlockSizeFromStat(const Tcl_StatBuf *statPtr);
+/* 602 */
+EXTERN int Tcl_SetEnsembleParameterList(Tcl_Interp *interp,
+ Tcl_Command token, Tcl_Obj *paramList);
+/* 603 */
+EXTERN int Tcl_GetEnsembleParameterList(Tcl_Interp *interp,
+ Tcl_Command token, Tcl_Obj **paramListPtr);
+/* 604 */
+EXTERN int TclParseArgsObjv(Tcl_Interp *interp,
+ const Tcl_ArgvInfo *argTable, void *objcPtr,
+ Tcl_Obj *const *objv, Tcl_Obj ***remObjv);
+/* 605 */
+EXTERN int Tcl_GetErrorLine(Tcl_Interp *interp);
+/* 606 */
+EXTERN void Tcl_SetErrorLine(Tcl_Interp *interp, int lineNum);
+/* 607 */
+EXTERN void Tcl_TransferResult(Tcl_Interp *sourceInterp,
+ int code, Tcl_Interp *targetInterp);
+/* 608 */
+EXTERN int Tcl_InterpActive(Tcl_Interp *interp);
+/* 609 */
+EXTERN void Tcl_BackgroundException(Tcl_Interp *interp, int code);
+/* 610 */
+EXTERN int Tcl_ZlibDeflate(Tcl_Interp *interp, int format,
+ Tcl_Obj *data, int level,
+ Tcl_Obj *gzipHeaderDictObj);
+/* 611 */
+EXTERN int Tcl_ZlibInflate(Tcl_Interp *interp, int format,
+ Tcl_Obj *data, Tcl_Size buffersize,
+ Tcl_Obj *gzipHeaderDictObj);
+/* 612 */
+EXTERN unsigned int Tcl_ZlibCRC32(unsigned int crc,
+ const unsigned char *buf, Tcl_Size len);
+/* 613 */
+EXTERN unsigned int Tcl_ZlibAdler32(unsigned int adler,
+ const unsigned char *buf, Tcl_Size len);
+/* 614 */
+EXTERN int Tcl_ZlibStreamInit(Tcl_Interp *interp, int mode,
+ int format, int level, Tcl_Obj *dictObj,
+ Tcl_ZlibStream *zshandle);
+/* 615 */
+EXTERN Tcl_Obj * Tcl_ZlibStreamGetCommandName(Tcl_ZlibStream zshandle);
+/* 616 */
+EXTERN int Tcl_ZlibStreamEof(Tcl_ZlibStream zshandle);
+/* 617 */
+EXTERN int Tcl_ZlibStreamChecksum(Tcl_ZlibStream zshandle);
+/* 618 */
+EXTERN int Tcl_ZlibStreamPut(Tcl_ZlibStream zshandle,
+ Tcl_Obj *data, int flush);
+/* 619 */
+EXTERN int Tcl_ZlibStreamGet(Tcl_ZlibStream zshandle,
+ Tcl_Obj *data, Tcl_Size count);
+/* 620 */
+EXTERN int Tcl_ZlibStreamClose(Tcl_ZlibStream zshandle);
+/* 621 */
+EXTERN int Tcl_ZlibStreamReset(Tcl_ZlibStream zshandle);
+/* 622 */
+EXTERN void Tcl_SetStartupScript(Tcl_Obj *path,
+ const char *encoding);
+/* 623 */
+EXTERN Tcl_Obj * Tcl_GetStartupScript(const char **encodingPtr);
+/* 624 */
+EXTERN int Tcl_CloseEx(Tcl_Interp *interp, Tcl_Channel chan,
+ int flags);
+/* 625 */
+EXTERN int Tcl_NRExprObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
+ Tcl_Obj *resultPtr);
+/* 626 */
+EXTERN int Tcl_NRSubstObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
+ int flags);
+/* 627 */
+EXTERN int Tcl_LoadFile(Tcl_Interp *interp, Tcl_Obj *pathPtr,
+ const char *const symv[], int flags,
+ void *procPtrs, Tcl_LoadHandle *handlePtr);
+/* 628 */
+EXTERN void * Tcl_FindSymbol(Tcl_Interp *interp,
+ Tcl_LoadHandle handle, const char *symbol);
+/* 629 */
+EXTERN int Tcl_FSUnloadFile(Tcl_Interp *interp,
+ Tcl_LoadHandle handlePtr);
+/* 630 */
+EXTERN void Tcl_ZlibStreamSetCompressionDictionary(
+ Tcl_ZlibStream zhandle,
+ Tcl_Obj *compressionDictionaryObj);
+/* 631 */
+EXTERN Tcl_Channel Tcl_OpenTcpServerEx(Tcl_Interp *interp,
+ const char *service, const char *host,
+ unsigned int flags, int backlog,
+ Tcl_TcpAcceptProc *acceptProc,
+ void *callbackData);
+/* 632 */
+EXTERN int TclZipfs_Mount(Tcl_Interp *interp,
+ const char *zipname, const char *mountPoint,
+ const char *passwd);
+/* 633 */
+EXTERN int TclZipfs_Unmount(Tcl_Interp *interp,
+ const char *mountPoint);
+/* 634 */
+EXTERN Tcl_Obj * TclZipfs_TclLibrary(void);
+/* 635 */
+EXTERN int TclZipfs_MountBuffer(Tcl_Interp *interp,
+ const void *data, size_t datalen,
+ const char *mountPoint, int copy);
+/* 636 */
+EXTERN void Tcl_FreeInternalRep(Tcl_Obj *objPtr);
+/* 637 */
+EXTERN char * Tcl_InitStringRep(Tcl_Obj *objPtr, const char *bytes,
+ TCL_HASH_TYPE numBytes);
+/* 638 */
+EXTERN Tcl_ObjInternalRep * Tcl_FetchInternalRep(Tcl_Obj *objPtr,
+ const Tcl_ObjType *typePtr);
+/* 639 */
+EXTERN void Tcl_StoreInternalRep(Tcl_Obj *objPtr,
+ const Tcl_ObjType *typePtr,
+ const Tcl_ObjInternalRep *irPtr);
+/* 640 */
+EXTERN int Tcl_HasStringRep(Tcl_Obj *objPtr);
+/* 641 */
+EXTERN void Tcl_IncrRefCount(Tcl_Obj *objPtr);
+/* 642 */
+EXTERN void Tcl_DecrRefCount(Tcl_Obj *objPtr);
+/* 643 */
+EXTERN int Tcl_IsShared(Tcl_Obj *objPtr);
+/* 644 */
+EXTERN int Tcl_LinkArray(Tcl_Interp *interp,
+ const char *varName, void *addr, int type,
+ Tcl_Size size);
+/* 645 */
+EXTERN int Tcl_GetIntForIndex(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, Tcl_Size endValue,
+ Tcl_Size *indexPtr);
+/* 646 */
+EXTERN Tcl_Size Tcl_UtfToUniChar(const char *src, int *chPtr);
+/* 647 */
+EXTERN char * Tcl_UniCharToUtfDString(const int *uniStr,
+ Tcl_Size uniLength, Tcl_DString *dsPtr);
+/* 648 */
+EXTERN int * Tcl_UtfToUniCharDString(const char *src,
+ Tcl_Size length, Tcl_DString *dsPtr);
+/* 649 */
+EXTERN unsigned char * TclGetBytesFromObj(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, void *numBytesPtr);
+/* 650 */
+EXTERN unsigned char * Tcl_GetBytesFromObj(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, Tcl_Size *numBytesPtr);
+/* 651 */
+EXTERN char * Tcl_GetStringFromObj(Tcl_Obj *objPtr,
+ Tcl_Size *lengthPtr);
+/* 652 */
+EXTERN Tcl_UniChar * Tcl_GetUnicodeFromObj(Tcl_Obj *objPtr,
+ Tcl_Size *lengthPtr);
+/* 653 */
+EXTERN int Tcl_GetSizeIntFromObj(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, Tcl_Size *sizePtr);
+/* 654 */
+EXTERN int Tcl_UtfCharComplete(const char *src, Tcl_Size length);
+/* 655 */
+EXTERN const char * Tcl_UtfNext(const char *src);
+/* 656 */
+EXTERN const char * Tcl_UtfPrev(const char *src, const char *start);
+/* 657 */
+EXTERN int Tcl_FSTildeExpand(Tcl_Interp *interp,
+ const char *path, Tcl_DString *dsPtr);
+/* 658 */
+EXTERN int Tcl_ExternalToUtfDStringEx(Tcl_Interp *interp,
+ Tcl_Encoding encoding, const char *src,
+ Tcl_Size srcLen, int flags,
+ Tcl_DString *dsPtr,
+ Tcl_Size *errorLocationPtr);
+/* 659 */
+EXTERN int Tcl_UtfToExternalDStringEx(Tcl_Interp *interp,
+ Tcl_Encoding encoding, const char *src,
+ Tcl_Size srcLen, int flags,
+ Tcl_DString *dsPtr,
+ Tcl_Size *errorLocationPtr);
+/* 660 */
+EXTERN int Tcl_AsyncMarkFromSignal(Tcl_AsyncHandler async,
+ int sigNumber);
+/* 661 */
+EXTERN int Tcl_ListObjGetElements(Tcl_Interp *interp,
+ Tcl_Obj *listPtr, Tcl_Size *objcPtr,
+ Tcl_Obj ***objvPtr);
+/* 662 */
+EXTERN int Tcl_ListObjLength(Tcl_Interp *interp,
+ Tcl_Obj *listPtr, Tcl_Size *lengthPtr);
+/* 663 */
+EXTERN int Tcl_DictObjSize(Tcl_Interp *interp, Tcl_Obj *dictPtr,
+ Tcl_Size *sizePtr);
+/* 664 */
+EXTERN int Tcl_SplitList(Tcl_Interp *interp,
+ const char *listStr, Tcl_Size *argcPtr,
+ const char ***argvPtr);
+/* 665 */
+EXTERN void Tcl_SplitPath(const char *path, Tcl_Size *argcPtr,
+ const char ***argvPtr);
+/* 666 */
+EXTERN Tcl_Obj * Tcl_FSSplitPath(Tcl_Obj *pathPtr, Tcl_Size *lenPtr);
+/* 667 */
+EXTERN int Tcl_ParseArgsObjv(Tcl_Interp *interp,
+ const Tcl_ArgvInfo *argTable,
+ Tcl_Size *objcPtr, Tcl_Obj *const *objv,
+ Tcl_Obj ***remObjv);
+/* 668 */
+EXTERN Tcl_Size Tcl_UniCharLen(const int *uniStr);
+/* 669 */
+EXTERN Tcl_Size Tcl_NumUtfChars(const char *src, Tcl_Size length);
+/* 670 */
+EXTERN Tcl_Size Tcl_GetCharLength(Tcl_Obj *objPtr);
+/* 671 */
+EXTERN const char * Tcl_UtfAtIndex(const char *src, Tcl_Size index);
+/* 672 */
+EXTERN Tcl_Obj * Tcl_GetRange(Tcl_Obj *objPtr, Tcl_Size first,
+ Tcl_Size last);
+/* 673 */
+EXTERN int Tcl_GetUniChar(Tcl_Obj *objPtr, Tcl_Size index);
+/* 674 */
+EXTERN int Tcl_GetBool(Tcl_Interp *interp, const char *src,
+ int flags, char *charPtr);
+/* 675 */
+EXTERN int Tcl_GetBoolFromObj(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, int flags, char *charPtr);
+/* 676 */
+EXTERN Tcl_Command Tcl_CreateObjCommand2(Tcl_Interp *interp,
+ const char *cmdName, Tcl_ObjCmdProc2 *proc2,
+ void *clientData,
+ Tcl_CmdDeleteProc *deleteProc);
+/* 677 */
+EXTERN Tcl_Trace Tcl_CreateObjTrace2(Tcl_Interp *interp,
+ Tcl_Size level, int flags,
+ Tcl_CmdObjTraceProc2 *objProc2,
+ void *clientData,
+ Tcl_CmdObjTraceDeleteProc *delProc);
+/* 678 */
+EXTERN Tcl_Command Tcl_NRCreateCommand2(Tcl_Interp *interp,
+ const char *cmdName, Tcl_ObjCmdProc2 *proc,
+ Tcl_ObjCmdProc2 *nreProc2, void *clientData,
+ Tcl_CmdDeleteProc *deleteProc);
+/* 679 */
+EXTERN int Tcl_NRCallObjProc2(Tcl_Interp *interp,
+ Tcl_ObjCmdProc2 *objProc2, void *clientData,
+ Tcl_Size objc, Tcl_Obj *const objv[]);
+/* 680 */
+EXTERN int Tcl_GetNumberFromObj(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, void **clientDataPtr,
+ int *typePtr);
+/* 681 */
+EXTERN int Tcl_GetNumber(Tcl_Interp *interp, const char *bytes,
+ Tcl_Size numBytes, void **clientDataPtr,
+ int *typePtr);
+/* 682 */
+EXTERN int Tcl_RemoveChannelMode(Tcl_Interp *interp,
+ Tcl_Channel chan, int mode);
+/* 683 */
+EXTERN Tcl_Size Tcl_GetEncodingNulLength(Tcl_Encoding encoding);
+/* 684 */
+EXTERN int Tcl_GetWideUIntFromObj(Tcl_Interp *interp,
+ Tcl_Obj *objPtr, Tcl_WideUInt *uwidePtr);
+/* 685 */
+EXTERN Tcl_Obj * Tcl_DStringToObj(Tcl_DString *dsPtr);
+/* 686 */
+EXTERN int Tcl_UtfNcmp(const char *s1, const char *s2, size_t n);
+/* 687 */
+EXTERN int Tcl_UtfNcasecmp(const char *s1, const char *s2,
+ size_t n);
+/* 688 */
+EXTERN Tcl_Obj * Tcl_NewWideUIntObj(Tcl_WideUInt wideValue);
+/* 689 */
+EXTERN void Tcl_SetWideUIntObj(Tcl_Obj *objPtr,
+ Tcl_WideUInt uwideValue);
+/* 690 */
+EXTERN void TclUnusedStubEntry(void);
+
+typedef struct {
+ const struct TclPlatStubs *tclPlatStubs;
+ const struct TclIntStubs *tclIntStubs;
+ const struct TclIntPlatStubs *tclIntPlatStubs;
+} TclStubHooks;
+
+typedef struct TclStubs {
+ int magic;
+ const TclStubHooks *hooks;
+
+ int (*tcl_PkgProvideEx) (Tcl_Interp *interp, const char *name, const char *version, const void *clientData); /* 0 */
+ const char * (*tcl_PkgRequireEx) (Tcl_Interp *interp, const char *name, const char *version, int exact, void *clientDataPtr); /* 1 */
+ TCL_NORETURN1 void (*tcl_Panic) (const char *format, ...) TCL_FORMAT_PRINTF(1, 2); /* 2 */
+ void * (*tcl_Alloc) (TCL_HASH_TYPE size); /* 3 */
+ void (*tcl_Free) (void *ptr); /* 4 */
+ void * (*tcl_Realloc) (void *ptr, TCL_HASH_TYPE size); /* 5 */
+ void * (*tcl_DbCkalloc) (TCL_HASH_TYPE size, const char *file, int line); /* 6 */
+ void (*tcl_DbCkfree) (void *ptr, const char *file, int line); /* 7 */
+ void * (*tcl_DbCkrealloc) (void *ptr, TCL_HASH_TYPE size, const char *file, int line); /* 8 */
+ void (*tcl_CreateFileHandler) (int fd, int mask, Tcl_FileProc *proc, void *clientData); /* 9 */
+ void (*tcl_DeleteFileHandler) (int fd); /* 10 */
+ void (*tcl_SetTimer) (const Tcl_Time *timePtr); /* 11 */
+ void (*tcl_Sleep) (int ms); /* 12 */
+ int (*tcl_WaitForEvent) (const Tcl_Time *timePtr); /* 13 */
+ int (*tcl_AppendAllObjTypes) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 14 */
+ void (*tcl_AppendStringsToObj) (Tcl_Obj *objPtr, ...); /* 15 */
+ void (*tcl_AppendToObj) (Tcl_Obj *objPtr, const char *bytes, Tcl_Size length); /* 16 */
+ Tcl_Obj * (*tcl_ConcatObj) (Tcl_Size objc, Tcl_Obj *const objv[]); /* 17 */
+ int (*tcl_ConvertToType) (Tcl_Interp *interp, Tcl_Obj *objPtr, const Tcl_ObjType *typePtr); /* 18 */
+ void (*tcl_DbDecrRefCount) (Tcl_Obj *objPtr, const char *file, int line); /* 19 */
+ void (*tcl_DbIncrRefCount) (Tcl_Obj *objPtr, const char *file, int line); /* 20 */
+ int (*tcl_DbIsShared) (Tcl_Obj *objPtr, const char *file, int line); /* 21 */
+ void (*reserved22)(void);
+ Tcl_Obj * (*tcl_DbNewByteArrayObj) (const unsigned char *bytes, Tcl_Size numBytes, const char *file, int line); /* 23 */
+ Tcl_Obj * (*tcl_DbNewDoubleObj) (double doubleValue, const char *file, int line); /* 24 */
+ Tcl_Obj * (*tcl_DbNewListObj) (Tcl_Size objc, Tcl_Obj *const *objv, const char *file, int line); /* 25 */
+ void (*reserved26)(void);
+ Tcl_Obj * (*tcl_DbNewObj) (const char *file, int line); /* 27 */
+ Tcl_Obj * (*tcl_DbNewStringObj) (const char *bytes, Tcl_Size length, const char *file, int line); /* 28 */
+ Tcl_Obj * (*tcl_DuplicateObj) (Tcl_Obj *objPtr); /* 29 */
+ void (*tclFreeObj) (Tcl_Obj *objPtr); /* 30 */
+ int (*tcl_GetBoolean) (Tcl_Interp *interp, const char *src, int *intPtr); /* 31 */
+ int (*tcl_GetBooleanFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *intPtr); /* 32 */
+ unsigned char * (*tcl_GetByteArrayFromObj) (Tcl_Obj *objPtr, Tcl_Size *numBytesPtr); /* 33 */
+ int (*tcl_GetDouble) (Tcl_Interp *interp, const char *src, double *doublePtr); /* 34 */
+ int (*tcl_GetDoubleFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, double *doublePtr); /* 35 */
+ void (*reserved36)(void);
+ int (*tcl_GetInt) (Tcl_Interp *interp, const char *src, int *intPtr); /* 37 */
+ int (*tcl_GetIntFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *intPtr); /* 38 */
+ int (*tcl_GetLongFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, long *longPtr); /* 39 */
+ const Tcl_ObjType * (*tcl_GetObjType) (const char *typeName); /* 40 */
+ char * (*tclGetStringFromObj) (Tcl_Obj *objPtr, void *lengthPtr); /* 41 */
+ void (*tcl_InvalidateStringRep) (Tcl_Obj *objPtr); /* 42 */
+ int (*tcl_ListObjAppendList) (Tcl_Interp *interp, Tcl_Obj *listPtr, Tcl_Obj *elemListPtr); /* 43 */
+ int (*tcl_ListObjAppendElement) (Tcl_Interp *interp, Tcl_Obj *listPtr, Tcl_Obj *objPtr); /* 44 */
+ int (*tclListObjGetElements) (Tcl_Interp *interp, Tcl_Obj *listPtr, void *objcPtr, Tcl_Obj ***objvPtr); /* 45 */
+ int (*tcl_ListObjIndex) (Tcl_Interp *interp, Tcl_Obj *listPtr, Tcl_Size index, Tcl_Obj **objPtrPtr); /* 46 */
+ int (*tclListObjLength) (Tcl_Interp *interp, Tcl_Obj *listPtr, void *lengthPtr); /* 47 */
+ int (*tcl_ListObjReplace) (Tcl_Interp *interp, Tcl_Obj *listPtr, Tcl_Size first, Tcl_Size count, Tcl_Size objc, Tcl_Obj *const objv[]); /* 48 */
+ void (*reserved49)(void);
+ Tcl_Obj * (*tcl_NewByteArrayObj) (const unsigned char *bytes, Tcl_Size numBytes); /* 50 */
+ Tcl_Obj * (*tcl_NewDoubleObj) (double doubleValue); /* 51 */
+ void (*reserved52)(void);
+ Tcl_Obj * (*tcl_NewListObj) (Tcl_Size objc, Tcl_Obj *const objv[]); /* 53 */
+ void (*reserved54)(void);
+ Tcl_Obj * (*tcl_NewObj) (void); /* 55 */
+ Tcl_Obj * (*tcl_NewStringObj) (const char *bytes, Tcl_Size length); /* 56 */
+ void (*reserved57)(void);
+ unsigned char * (*tcl_SetByteArrayLength) (Tcl_Obj *objPtr, Tcl_Size numBytes); /* 58 */
+ void (*tcl_SetByteArrayObj) (Tcl_Obj *objPtr, const unsigned char *bytes, Tcl_Size numBytes); /* 59 */
+ void (*tcl_SetDoubleObj) (Tcl_Obj *objPtr, double doubleValue); /* 60 */
+ void (*reserved61)(void);
+ void (*tcl_SetListObj) (Tcl_Obj *objPtr, Tcl_Size objc, Tcl_Obj *const objv[]); /* 62 */
+ void (*reserved63)(void);
+ void (*tcl_SetObjLength) (Tcl_Obj *objPtr, Tcl_Size length); /* 64 */
+ void (*tcl_SetStringObj) (Tcl_Obj *objPtr, const char *bytes, Tcl_Size length); /* 65 */
+ void (*reserved66)(void);
+ void (*reserved67)(void);
+ void (*tcl_AllowExceptions) (Tcl_Interp *interp); /* 68 */
+ void (*tcl_AppendElement) (Tcl_Interp *interp, const char *element); /* 69 */
+ void (*tcl_AppendResult) (Tcl_Interp *interp, ...); /* 70 */
+ Tcl_AsyncHandler (*tcl_AsyncCreate) (Tcl_AsyncProc *proc, void *clientData); /* 71 */
+ void (*tcl_AsyncDelete) (Tcl_AsyncHandler async); /* 72 */
+ int (*tcl_AsyncInvoke) (Tcl_Interp *interp, int code); /* 73 */
+ void (*tcl_AsyncMark) (Tcl_AsyncHandler async); /* 74 */
+ int (*tcl_AsyncReady) (void); /* 75 */
+ void (*reserved76)(void);
+ void (*reserved77)(void);
+ int (*tcl_BadChannelOption) (Tcl_Interp *interp, const char *optionName, const char *optionList); /* 78 */
+ void (*tcl_CallWhenDeleted) (Tcl_Interp *interp, Tcl_InterpDeleteProc *proc, void *clientData); /* 79 */
+ void (*tcl_CancelIdleCall) (Tcl_IdleProc *idleProc, void *clientData); /* 80 */
+ int (*tcl_Close) (Tcl_Interp *interp, Tcl_Channel chan); /* 81 */
+ int (*tcl_CommandComplete) (const char *cmd); /* 82 */
+ char * (*tcl_Concat) (Tcl_Size argc, const char *const *argv); /* 83 */
+ Tcl_Size (*tcl_ConvertElement) (const char *src, char *dst, int flags); /* 84 */
+ Tcl_Size (*tcl_ConvertCountedElement) (const char *src, Tcl_Size length, char *dst, int flags); /* 85 */
+ int (*tcl_CreateAlias) (Tcl_Interp *childInterp, const char *childCmd, Tcl_Interp *target, const char *targetCmd, Tcl_Size argc, const char *const *argv); /* 86 */
+ int (*tcl_CreateAliasObj) (Tcl_Interp *childInterp, const char *childCmd, Tcl_Interp *target, const char *targetCmd, Tcl_Size objc, Tcl_Obj *const objv[]); /* 87 */
+ Tcl_Channel (*tcl_CreateChannel) (const Tcl_ChannelType *typePtr, const char *chanName, void *instanceData, int mask); /* 88 */
+ void (*tcl_CreateChannelHandler) (Tcl_Channel chan, int mask, Tcl_ChannelProc *proc, void *clientData); /* 89 */
+ void (*tcl_CreateCloseHandler) (Tcl_Channel chan, Tcl_CloseProc *proc, void *clientData); /* 90 */
+ Tcl_Command (*tcl_CreateCommand) (Tcl_Interp *interp, const char *cmdName, Tcl_CmdProc *proc, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 91 */
+ void (*tcl_CreateEventSource) (Tcl_EventSetupProc *setupProc, Tcl_EventCheckProc *checkProc, void *clientData); /* 92 */
+ void (*tcl_CreateExitHandler) (Tcl_ExitProc *proc, void *clientData); /* 93 */
+ Tcl_Interp * (*tcl_CreateInterp) (void); /* 94 */
+ void (*reserved95)(void);
+ Tcl_Command (*tcl_CreateObjCommand) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc *proc, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 96 */
+ Tcl_Interp * (*tcl_CreateChild) (Tcl_Interp *interp, const char *name, int isSafe); /* 97 */
+ Tcl_TimerToken (*tcl_CreateTimerHandler) (int milliseconds, Tcl_TimerProc *proc, void *clientData); /* 98 */
+ Tcl_Trace (*tcl_CreateTrace) (Tcl_Interp *interp, Tcl_Size level, Tcl_CmdTraceProc *proc, void *clientData); /* 99 */
+ void (*tcl_DeleteAssocData) (Tcl_Interp *interp, const char *name); /* 100 */
+ void (*tcl_DeleteChannelHandler) (Tcl_Channel chan, Tcl_ChannelProc *proc, void *clientData); /* 101 */
+ void (*tcl_DeleteCloseHandler) (Tcl_Channel chan, Tcl_CloseProc *proc, void *clientData); /* 102 */
+ int (*tcl_DeleteCommand) (Tcl_Interp *interp, const char *cmdName); /* 103 */
+ int (*tcl_DeleteCommandFromToken) (Tcl_Interp *interp, Tcl_Command command); /* 104 */
+ void (*tcl_DeleteEvents) (Tcl_EventDeleteProc *proc, void *clientData); /* 105 */
+ void (*tcl_DeleteEventSource) (Tcl_EventSetupProc *setupProc, Tcl_EventCheckProc *checkProc, void *clientData); /* 106 */
+ void (*tcl_DeleteExitHandler) (Tcl_ExitProc *proc, void *clientData); /* 107 */
+ void (*tcl_DeleteHashEntry) (Tcl_HashEntry *entryPtr); /* 108 */
+ void (*tcl_DeleteHashTable) (Tcl_HashTable *tablePtr); /* 109 */
+ void (*tcl_DeleteInterp) (Tcl_Interp *interp); /* 110 */
+ void (*tcl_DetachPids) (Tcl_Size numPids, Tcl_Pid *pidPtr); /* 111 */
+ void (*tcl_DeleteTimerHandler) (Tcl_TimerToken token); /* 112 */
+ void (*tcl_DeleteTrace) (Tcl_Interp *interp, Tcl_Trace trace); /* 113 */
+ void (*tcl_DontCallWhenDeleted) (Tcl_Interp *interp, Tcl_InterpDeleteProc *proc, void *clientData); /* 114 */
+ int (*tcl_DoOneEvent) (int flags); /* 115 */
+ void (*tcl_DoWhenIdle) (Tcl_IdleProc *proc, void *clientData); /* 116 */
+ char * (*tcl_DStringAppend) (Tcl_DString *dsPtr, const char *bytes, Tcl_Size length); /* 117 */
+ char * (*tcl_DStringAppendElement) (Tcl_DString *dsPtr, const char *element); /* 118 */
+ void (*tcl_DStringEndSublist) (Tcl_DString *dsPtr); /* 119 */
+ void (*tcl_DStringFree) (Tcl_DString *dsPtr); /* 120 */
+ void (*tcl_DStringGetResult) (Tcl_Interp *interp, Tcl_DString *dsPtr); /* 121 */
+ void (*tcl_DStringInit) (Tcl_DString *dsPtr); /* 122 */
+ void (*tcl_DStringResult) (Tcl_Interp *interp, Tcl_DString *dsPtr); /* 123 */
+ void (*tcl_DStringSetLength) (Tcl_DString *dsPtr, Tcl_Size length); /* 124 */
+ void (*tcl_DStringStartSublist) (Tcl_DString *dsPtr); /* 125 */
+ int (*tcl_Eof) (Tcl_Channel chan); /* 126 */
+ const char * (*tcl_ErrnoId) (void); /* 127 */
+ const char * (*tcl_ErrnoMsg) (int err); /* 128 */
+ void (*reserved129)(void);
+ int (*tcl_EvalFile) (Tcl_Interp *interp, const char *fileName); /* 130 */
+ void (*reserved131)(void);
+ void (*tcl_EventuallyFree) (void *clientData, Tcl_FreeProc *freeProc); /* 132 */
+ TCL_NORETURN1 void (*tcl_Exit) (int status); /* 133 */
+ int (*tcl_ExposeCommand) (Tcl_Interp *interp, const char *hiddenCmdToken, const char *cmdName); /* 134 */
+ int (*tcl_ExprBoolean) (Tcl_Interp *interp, const char *expr, int *ptr); /* 135 */
+ int (*tcl_ExprBooleanObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *ptr); /* 136 */
+ int (*tcl_ExprDouble) (Tcl_Interp *interp, const char *expr, double *ptr); /* 137 */
+ int (*tcl_ExprDoubleObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, double *ptr); /* 138 */
+ int (*tcl_ExprLong) (Tcl_Interp *interp, const char *expr, long *ptr); /* 139 */
+ int (*tcl_ExprLongObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, long *ptr); /* 140 */
+ int (*tcl_ExprObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Obj **resultPtrPtr); /* 141 */
+ int (*tcl_ExprString) (Tcl_Interp *interp, const char *expr); /* 142 */
+ void (*tcl_Finalize) (void); /* 143 */
+ void (*reserved144)(void);
+ Tcl_HashEntry * (*tcl_FirstHashEntry) (Tcl_HashTable *tablePtr, Tcl_HashSearch *searchPtr); /* 145 */
+ int (*tcl_Flush) (Tcl_Channel chan); /* 146 */
+ void (*reserved147)(void);
+ void (*reserved148)(void);
+ int (*tclGetAliasObj) (Tcl_Interp *interp, const char *childCmd, Tcl_Interp **targetInterpPtr, const char **targetCmdPtr, int *objcPtr, Tcl_Obj ***objvPtr); /* 149 */
+ void * (*tcl_GetAssocData) (Tcl_Interp *interp, const char *name, Tcl_InterpDeleteProc **procPtr); /* 150 */
+ Tcl_Channel (*tcl_GetChannel) (Tcl_Interp *interp, const char *chanName, int *modePtr); /* 151 */
+ Tcl_Size (*tcl_GetChannelBufferSize) (Tcl_Channel chan); /* 152 */
+ int (*tcl_GetChannelHandle) (Tcl_Channel chan, int direction, void **handlePtr); /* 153 */
+ void * (*tcl_GetChannelInstanceData) (Tcl_Channel chan); /* 154 */
+ int (*tcl_GetChannelMode) (Tcl_Channel chan); /* 155 */
+ const char * (*tcl_GetChannelName) (Tcl_Channel chan); /* 156 */
+ int (*tcl_GetChannelOption) (Tcl_Interp *interp, Tcl_Channel chan, const char *optionName, Tcl_DString *dsPtr); /* 157 */
+ const Tcl_ChannelType * (*tcl_GetChannelType) (Tcl_Channel chan); /* 158 */
+ int (*tcl_GetCommandInfo) (Tcl_Interp *interp, const char *cmdName, Tcl_CmdInfo *infoPtr); /* 159 */
+ const char * (*tcl_GetCommandName) (Tcl_Interp *interp, Tcl_Command command); /* 160 */
+ int (*tcl_GetErrno) (void); /* 161 */
+ const char * (*tcl_GetHostName) (void); /* 162 */
+ int (*tcl_GetInterpPath) (Tcl_Interp *interp, Tcl_Interp *childInterp); /* 163 */
+ Tcl_Interp * (*tcl_GetParent) (Tcl_Interp *interp); /* 164 */
+ const char * (*tcl_GetNameOfExecutable) (void); /* 165 */
+ Tcl_Obj * (*tcl_GetObjResult) (Tcl_Interp *interp); /* 166 */
+ int (*tcl_GetOpenFile) (Tcl_Interp *interp, const char *chanID, int forWriting, int checkUsage, void **filePtr); /* 167 */
+ Tcl_PathType (*tcl_GetPathType) (const char *path); /* 168 */
+ Tcl_Size (*tcl_Gets) (Tcl_Channel chan, Tcl_DString *dsPtr); /* 169 */
+ Tcl_Size (*tcl_GetsObj) (Tcl_Channel chan, Tcl_Obj *objPtr); /* 170 */
+ int (*tcl_GetServiceMode) (void); /* 171 */
+ Tcl_Interp * (*tcl_GetChild) (Tcl_Interp *interp, const char *name); /* 172 */
+ Tcl_Channel (*tcl_GetStdChannel) (int type); /* 173 */
+ void (*reserved174)(void);
+ void (*reserved175)(void);
+ const char * (*tcl_GetVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags); /* 176 */
+ void (*reserved177)(void);
+ void (*reserved178)(void);
+ int (*tcl_HideCommand) (Tcl_Interp *interp, const char *cmdName, const char *hiddenCmdToken); /* 179 */
+ int (*tcl_Init) (Tcl_Interp *interp); /* 180 */
+ void (*tcl_InitHashTable) (Tcl_HashTable *tablePtr, int keyType); /* 181 */
+ int (*tcl_InputBlocked) (Tcl_Channel chan); /* 182 */
+ int (*tcl_InputBuffered) (Tcl_Channel chan); /* 183 */
+ int (*tcl_InterpDeleted) (Tcl_Interp *interp); /* 184 */
+ int (*tcl_IsSafe) (Tcl_Interp *interp); /* 185 */
+ char * (*tcl_JoinPath) (Tcl_Size argc, const char *const *argv, Tcl_DString *resultPtr); /* 186 */
+ int (*tcl_LinkVar) (Tcl_Interp *interp, const char *varName, void *addr, int type); /* 187 */
+ void (*reserved188)(void);
+ Tcl_Channel (*tcl_MakeFileChannel) (void *handle, int mode); /* 189 */
+ void (*reserved190)(void);
+ Tcl_Channel (*tcl_MakeTcpClientChannel) (void *tcpSocket); /* 191 */
+ char * (*tcl_Merge) (Tcl_Size argc, const char *const *argv); /* 192 */
+ Tcl_HashEntry * (*tcl_NextHashEntry) (Tcl_HashSearch *searchPtr); /* 193 */
+ void (*tcl_NotifyChannel) (Tcl_Channel channel, int mask); /* 194 */
+ Tcl_Obj * (*tcl_ObjGetVar2) (Tcl_Interp *interp, Tcl_Obj *part1Ptr, Tcl_Obj *part2Ptr, int flags); /* 195 */
+ Tcl_Obj * (*tcl_ObjSetVar2) (Tcl_Interp *interp, Tcl_Obj *part1Ptr, Tcl_Obj *part2Ptr, Tcl_Obj *newValuePtr, int flags); /* 196 */
+ Tcl_Channel (*tcl_OpenCommandChannel) (Tcl_Interp *interp, Tcl_Size argc, const char **argv, int flags); /* 197 */
+ Tcl_Channel (*tcl_OpenFileChannel) (Tcl_Interp *interp, const char *fileName, const char *modeString, int permissions); /* 198 */
+ Tcl_Channel (*tcl_OpenTcpClient) (Tcl_Interp *interp, int port, const char *address, const char *myaddr, int myport, int flags); /* 199 */
+ Tcl_Channel (*tcl_OpenTcpServer) (Tcl_Interp *interp, int port, const char *host, Tcl_TcpAcceptProc *acceptProc, void *callbackData); /* 200 */
+ void (*tcl_Preserve) (void *data); /* 201 */
+ void (*tcl_PrintDouble) (Tcl_Interp *interp, double value, char *dst); /* 202 */
+ int (*tcl_PutEnv) (const char *assignment); /* 203 */
+ const char * (*tcl_PosixError) (Tcl_Interp *interp); /* 204 */
+ void (*tcl_QueueEvent) (Tcl_Event *evPtr, int position); /* 205 */
+ Tcl_Size (*tcl_Read) (Tcl_Channel chan, char *bufPtr, Tcl_Size toRead); /* 206 */
+ void (*tcl_ReapDetachedProcs) (void); /* 207 */
+ int (*tcl_RecordAndEval) (Tcl_Interp *interp, const char *cmd, int flags); /* 208 */
+ int (*tcl_RecordAndEvalObj) (Tcl_Interp *interp, Tcl_Obj *cmdPtr, int flags); /* 209 */
+ void (*tcl_RegisterChannel) (Tcl_Interp *interp, Tcl_Channel chan); /* 210 */
+ void (*tcl_RegisterObjType) (const Tcl_ObjType *typePtr); /* 211 */
+ Tcl_RegExp (*tcl_RegExpCompile) (Tcl_Interp *interp, const char *pattern); /* 212 */
+ int (*tcl_RegExpExec) (Tcl_Interp *interp, Tcl_RegExp regexp, const char *text, const char *start); /* 213 */
+ int (*tcl_RegExpMatch) (Tcl_Interp *interp, const char *text, const char *pattern); /* 214 */
+ void (*tcl_RegExpRange) (Tcl_RegExp regexp, Tcl_Size index, const char **startPtr, const char **endPtr); /* 215 */
+ void (*tcl_Release) (void *clientData); /* 216 */
+ void (*tcl_ResetResult) (Tcl_Interp *interp); /* 217 */
+ Tcl_Size (*tcl_ScanElement) (const char *src, int *flagPtr); /* 218 */
+ Tcl_Size (*tcl_ScanCountedElement) (const char *src, Tcl_Size length, int *flagPtr); /* 219 */
+ void (*reserved220)(void);
+ int (*tcl_ServiceAll) (void); /* 221 */
+ int (*tcl_ServiceEvent) (int flags); /* 222 */
+ void (*tcl_SetAssocData) (Tcl_Interp *interp, const char *name, Tcl_InterpDeleteProc *proc, void *clientData); /* 223 */
+ void (*tcl_SetChannelBufferSize) (Tcl_Channel chan, Tcl_Size sz); /* 224 */
+ int (*tcl_SetChannelOption) (Tcl_Interp *interp, Tcl_Channel chan, const char *optionName, const char *newValue); /* 225 */
+ int (*tcl_SetCommandInfo) (Tcl_Interp *interp, const char *cmdName, const Tcl_CmdInfo *infoPtr); /* 226 */
+ void (*tcl_SetErrno) (int err); /* 227 */
+ void (*tcl_SetErrorCode) (Tcl_Interp *interp, ...); /* 228 */
+ void (*tcl_SetMaxBlockTime) (const Tcl_Time *timePtr); /* 229 */
+ void (*reserved230)(void);
+ Tcl_Size (*tcl_SetRecursionLimit) (Tcl_Interp *interp, Tcl_Size depth); /* 231 */
+ void (*reserved232)(void);
+ int (*tcl_SetServiceMode) (int mode); /* 233 */
+ void (*tcl_SetObjErrorCode) (Tcl_Interp *interp, Tcl_Obj *errorObjPtr); /* 234 */
+ void (*tcl_SetObjResult) (Tcl_Interp *interp, Tcl_Obj *resultObjPtr); /* 235 */
+ void (*tcl_SetStdChannel) (Tcl_Channel channel, int type); /* 236 */
+ void (*reserved237)(void);
+ const char * (*tcl_SetVar2) (Tcl_Interp *interp, const char *part1, const char *part2, const char *newValue, int flags); /* 238 */
+ const char * (*tcl_SignalId) (int sig); /* 239 */
+ const char * (*tcl_SignalMsg) (int sig); /* 240 */
+ void (*tcl_SourceRCFile) (Tcl_Interp *interp); /* 241 */
+ int (*tclSplitList) (Tcl_Interp *interp, const char *listStr, void *argcPtr, const char ***argvPtr); /* 242 */
+ void (*tclSplitPath) (const char *path, void *argcPtr, const char ***argvPtr); /* 243 */
+ void (*reserved244)(void);
+ void (*reserved245)(void);
+ void (*reserved246)(void);
+ void (*reserved247)(void);
+ int (*tcl_TraceVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags, Tcl_VarTraceProc *proc, void *clientData); /* 248 */
+ char * (*tcl_TranslateFileName) (Tcl_Interp *interp, const char *name, Tcl_DString *bufferPtr); /* 249 */
+ Tcl_Size (*tcl_Ungets) (Tcl_Channel chan, const char *str, Tcl_Size len, int atHead); /* 250 */
+ void (*tcl_UnlinkVar) (Tcl_Interp *interp, const char *varName); /* 251 */
+ int (*tcl_UnregisterChannel) (Tcl_Interp *interp, Tcl_Channel chan); /* 252 */
+ void (*reserved253)(void);
+ int (*tcl_UnsetVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags); /* 254 */
+ void (*reserved255)(void);
+ void (*tcl_UntraceVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags, Tcl_VarTraceProc *proc, void *clientData); /* 256 */
+ void (*tcl_UpdateLinkedVar) (Tcl_Interp *interp, const char *varName); /* 257 */
+ void (*reserved258)(void);
+ int (*tcl_UpVar2) (Tcl_Interp *interp, const char *frameName, const char *part1, const char *part2, const char *localName, int flags); /* 259 */
+ int (*tcl_VarEval) (Tcl_Interp *interp, ...); /* 260 */
+ void (*reserved261)(void);
+ void * (*tcl_VarTraceInfo2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags, Tcl_VarTraceProc *procPtr, void *prevClientData); /* 262 */
+ Tcl_Size (*tcl_Write) (Tcl_Channel chan, const char *s, Tcl_Size slen); /* 263 */
+ void (*tcl_WrongNumArgs) (Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[], const char *message); /* 264 */
+ int (*tcl_DumpActiveMemory) (const char *fileName); /* 265 */
+ void (*tcl_ValidateAllMemory) (const char *file, int line); /* 266 */
+ void (*reserved267)(void);
+ void (*reserved268)(void);
+ char * (*tcl_HashStats) (Tcl_HashTable *tablePtr); /* 269 */
+ const char * (*tcl_ParseVar) (Tcl_Interp *interp, const char *start, const char **termPtr); /* 270 */
+ void (*reserved271)(void);
+ const char * (*tcl_PkgPresentEx) (Tcl_Interp *interp, const char *name, const char *version, int exact, void *clientDataPtr); /* 272 */
+ void (*reserved273)(void);
+ void (*reserved274)(void);
+ void (*reserved275)(void);
+ void (*reserved276)(void);
+ Tcl_Pid (*tcl_WaitPid) (Tcl_Pid pid, int *statPtr, int options); /* 277 */
+ void (*reserved278)(void);
+ void (*tcl_GetVersion) (int *major, int *minor, int *patchLevel, int *type); /* 279 */
+ void (*tcl_InitMemory) (Tcl_Interp *interp); /* 280 */
+ Tcl_Channel (*tcl_StackChannel) (Tcl_Interp *interp, const Tcl_ChannelType *typePtr, void *instanceData, int mask, Tcl_Channel prevChan); /* 281 */
+ int (*tcl_UnstackChannel) (Tcl_Interp *interp, Tcl_Channel chan); /* 282 */
+ Tcl_Channel (*tcl_GetStackedChannel) (Tcl_Channel chan); /* 283 */
+ void (*tcl_SetMainLoop) (Tcl_MainLoopProc *proc); /* 284 */
+ int (*tcl_GetAliasObj) (Tcl_Interp *interp, const char *childCmd, Tcl_Interp **targetInterpPtr, const char **targetCmdPtr, Tcl_Size *objcPtr, Tcl_Obj ***objvPtr); /* 285 */
+ void (*tcl_AppendObjToObj) (Tcl_Obj *objPtr, Tcl_Obj *appendObjPtr); /* 286 */
+ Tcl_Encoding (*tcl_CreateEncoding) (const Tcl_EncodingType *typePtr); /* 287 */
+ void (*tcl_CreateThreadExitHandler) (Tcl_ExitProc *proc, void *clientData); /* 288 */
+ void (*tcl_DeleteThreadExitHandler) (Tcl_ExitProc *proc, void *clientData); /* 289 */
+ void (*reserved290)(void);
+ int (*tcl_EvalEx) (Tcl_Interp *interp, const char *script, Tcl_Size numBytes, int flags); /* 291 */
+ int (*tcl_EvalObjv) (Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[], int flags); /* 292 */
+ int (*tcl_EvalObjEx) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 293 */
+ TCL_NORETURN1 void (*tcl_ExitThread) (int status); /* 294 */
+ int (*tcl_ExternalToUtf) (Tcl_Interp *interp, Tcl_Encoding encoding, const char *src, Tcl_Size srcLen, int flags, Tcl_EncodingState *statePtr, char *dst, Tcl_Size dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr); /* 295 */
+ char * (*tcl_ExternalToUtfDString) (Tcl_Encoding encoding, const char *src, Tcl_Size srcLen, Tcl_DString *dsPtr); /* 296 */
+ void (*tcl_FinalizeThread) (void); /* 297 */
+ void (*tcl_FinalizeNotifier) (void *clientData); /* 298 */
+ void (*tcl_FreeEncoding) (Tcl_Encoding encoding); /* 299 */
+ Tcl_ThreadId (*tcl_GetCurrentThread) (void); /* 300 */
+ Tcl_Encoding (*tcl_GetEncoding) (Tcl_Interp *interp, const char *name); /* 301 */
+ const char * (*tcl_GetEncodingName) (Tcl_Encoding encoding); /* 302 */
+ void (*tcl_GetEncodingNames) (Tcl_Interp *interp); /* 303 */
+ int (*tcl_GetIndexFromObjStruct) (Tcl_Interp *interp, Tcl_Obj *objPtr, const void *tablePtr, Tcl_Size offset, const char *msg, int flags, void *indexPtr); /* 304 */
+ void * (*tcl_GetThreadData) (Tcl_ThreadDataKey *keyPtr, Tcl_Size size); /* 305 */
+ Tcl_Obj * (*tcl_GetVar2Ex) (Tcl_Interp *interp, const char *part1, const char *part2, int flags); /* 306 */
+ void * (*tcl_InitNotifier) (void); /* 307 */
+ void (*tcl_MutexLock) (Tcl_Mutex *mutexPtr); /* 308 */
+ void (*tcl_MutexUnlock) (Tcl_Mutex *mutexPtr); /* 309 */
+ void (*tcl_ConditionNotify) (Tcl_Condition *condPtr); /* 310 */
+ void (*tcl_ConditionWait) (Tcl_Condition *condPtr, Tcl_Mutex *mutexPtr, const Tcl_Time *timePtr); /* 311 */
+ Tcl_Size (*tclNumUtfChars) (const char *src, Tcl_Size length); /* 312 */
+ Tcl_Size (*tcl_ReadChars) (Tcl_Channel channel, Tcl_Obj *objPtr, Tcl_Size charsToRead, int appendFlag); /* 313 */
+ void (*reserved314)(void);
+ void (*reserved315)(void);
+ int (*tcl_SetSystemEncoding) (Tcl_Interp *interp, const char *name); /* 316 */
+ Tcl_Obj * (*tcl_SetVar2Ex) (Tcl_Interp *interp, const char *part1, const char *part2, Tcl_Obj *newValuePtr, int flags); /* 317 */
+ void (*tcl_ThreadAlert) (Tcl_ThreadId threadId); /* 318 */
+ void (*tcl_ThreadQueueEvent) (Tcl_ThreadId threadId, Tcl_Event *evPtr, int position); /* 319 */
+ int (*tcl_UniCharAtIndex) (const char *src, Tcl_Size index); /* 320 */
+ int (*tcl_UniCharToLower) (int ch); /* 321 */
+ int (*tcl_UniCharToTitle) (int ch); /* 322 */
+ int (*tcl_UniCharToUpper) (int ch); /* 323 */
+ Tcl_Size (*tcl_UniCharToUtf) (int ch, char *buf); /* 324 */
+ const char * (*tclUtfAtIndex) (const char *src, Tcl_Size index); /* 325 */
+ int (*tclUtfCharComplete) (const char *src, Tcl_Size length); /* 326 */
+ Tcl_Size (*tcl_UtfBackslash) (const char *src, int *readPtr, char *dst); /* 327 */
+ const char * (*tcl_UtfFindFirst) (const char *src, int ch); /* 328 */
+ const char * (*tcl_UtfFindLast) (const char *src, int ch); /* 329 */
+ const char * (*tclUtfNext) (const char *src); /* 330 */
+ const char * (*tclUtfPrev) (const char *src, const char *start); /* 331 */
+ int (*tcl_UtfToExternal) (Tcl_Interp *interp, Tcl_Encoding encoding, const char *src, Tcl_Size srcLen, int flags, Tcl_EncodingState *statePtr, char *dst, Tcl_Size dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr); /* 332 */
+ char * (*tcl_UtfToExternalDString) (Tcl_Encoding encoding, const char *src, Tcl_Size srcLen, Tcl_DString *dsPtr); /* 333 */
+ Tcl_Size (*tcl_UtfToLower) (char *src); /* 334 */
+ Tcl_Size (*tcl_UtfToTitle) (char *src); /* 335 */
+ Tcl_Size (*tcl_UtfToChar16) (const char *src, unsigned short *chPtr); /* 336 */
+ Tcl_Size (*tcl_UtfToUpper) (char *src); /* 337 */
+ Tcl_Size (*tcl_WriteChars) (Tcl_Channel chan, const char *src, Tcl_Size srcLen); /* 338 */
+ Tcl_Size (*tcl_WriteObj) (Tcl_Channel chan, Tcl_Obj *objPtr); /* 339 */
+ char * (*tcl_GetString) (Tcl_Obj *objPtr); /* 340 */
+ void (*reserved341)(void);
+ void (*reserved342)(void);
+ void (*tcl_AlertNotifier) (void *clientData); /* 343 */
+ void (*tcl_ServiceModeHook) (int mode); /* 344 */
+ int (*tcl_UniCharIsAlnum) (int ch); /* 345 */
+ int (*tcl_UniCharIsAlpha) (int ch); /* 346 */
+ int (*tcl_UniCharIsDigit) (int ch); /* 347 */
+ int (*tcl_UniCharIsLower) (int ch); /* 348 */
+ int (*tcl_UniCharIsSpace) (int ch); /* 349 */
+ int (*tcl_UniCharIsUpper) (int ch); /* 350 */
+ int (*tcl_UniCharIsWordChar) (int ch); /* 351 */
+ Tcl_Size (*tcl_Char16Len) (const unsigned short *uniStr); /* 352 */
+ void (*reserved353)(void);
+ char * (*tcl_Char16ToUtfDString) (const unsigned short *uniStr, Tcl_Size uniLength, Tcl_DString *dsPtr); /* 354 */
+ unsigned short * (*tcl_UtfToChar16DString) (const char *src, Tcl_Size length, Tcl_DString *dsPtr); /* 355 */
+ Tcl_RegExp (*tcl_GetRegExpFromObj) (Tcl_Interp *interp, Tcl_Obj *patObj, int flags); /* 356 */
+ void (*reserved357)(void);
+ void (*tcl_FreeParse) (Tcl_Parse *parsePtr); /* 358 */
+ void (*tcl_LogCommandInfo) (Tcl_Interp *interp, const char *script, const char *command, Tcl_Size length); /* 359 */
+ int (*tcl_ParseBraces) (Tcl_Interp *interp, const char *start, Tcl_Size numBytes, Tcl_Parse *parsePtr, int append, const char **termPtr); /* 360 */
+ int (*tcl_ParseCommand) (Tcl_Interp *interp, const char *start, Tcl_Size numBytes, int nested, Tcl_Parse *parsePtr); /* 361 */
+ int (*tcl_ParseExpr) (Tcl_Interp *interp, const char *start, Tcl_Size numBytes, Tcl_Parse *parsePtr); /* 362 */
+ int (*tcl_ParseQuotedString) (Tcl_Interp *interp, const char *start, Tcl_Size numBytes, Tcl_Parse *parsePtr, int append, const char **termPtr); /* 363 */
+ int (*tcl_ParseVarName) (Tcl_Interp *interp, const char *start, Tcl_Size numBytes, Tcl_Parse *parsePtr, int append); /* 364 */
+ char * (*tcl_GetCwd) (Tcl_Interp *interp, Tcl_DString *cwdPtr); /* 365 */
+ int (*tcl_Chdir) (const char *dirName); /* 366 */
+ int (*tcl_Access) (const char *path, int mode); /* 367 */
+ int (*tcl_Stat) (const char *path, struct stat *bufPtr); /* 368 */
+ int (*tclUtfNcmp) (const char *s1, const char *s2, size_t n); /* 369 */
+ int (*tclUtfNcasecmp) (const char *s1, const char *s2, size_t n); /* 370 */
+ int (*tcl_StringCaseMatch) (const char *str, const char *pattern, int nocase); /* 371 */
+ int (*tcl_UniCharIsControl) (int ch); /* 372 */
+ int (*tcl_UniCharIsGraph) (int ch); /* 373 */
+ int (*tcl_UniCharIsPrint) (int ch); /* 374 */
+ int (*tcl_UniCharIsPunct) (int ch); /* 375 */
+ int (*tcl_RegExpExecObj) (Tcl_Interp *interp, Tcl_RegExp regexp, Tcl_Obj *textObj, Tcl_Size offset, Tcl_Size nmatches, int flags); /* 376 */
+ void (*tcl_RegExpGetInfo) (Tcl_RegExp regexp, Tcl_RegExpInfo *infoPtr); /* 377 */
+ Tcl_Obj * (*tcl_NewUnicodeObj) (const Tcl_UniChar *unicode, Tcl_Size numChars); /* 378 */
+ void (*tcl_SetUnicodeObj) (Tcl_Obj *objPtr, const Tcl_UniChar *unicode, Tcl_Size numChars); /* 379 */
+ Tcl_Size (*tclGetCharLength) (Tcl_Obj *objPtr); /* 380 */
+ int (*tclGetUniChar) (Tcl_Obj *objPtr, Tcl_Size index); /* 381 */
+ void (*reserved382)(void);
+ Tcl_Obj * (*tclGetRange) (Tcl_Obj *objPtr, Tcl_Size first, Tcl_Size last); /* 383 */
+ void (*tcl_AppendUnicodeToObj) (Tcl_Obj *objPtr, const Tcl_UniChar *unicode, Tcl_Size length); /* 384 */
+ int (*tcl_RegExpMatchObj) (Tcl_Interp *interp, Tcl_Obj *textObj, Tcl_Obj *patternObj); /* 385 */
+ void (*tcl_SetNotifier) (const Tcl_NotifierProcs *notifierProcPtr); /* 386 */
+ Tcl_Mutex * (*tcl_GetAllocMutex) (void); /* 387 */
+ int (*tcl_GetChannelNames) (Tcl_Interp *interp); /* 388 */
+ int (*tcl_GetChannelNamesEx) (Tcl_Interp *interp, const char *pattern); /* 389 */
+ int (*tcl_ProcObjCmd) (void *clientData, Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); /* 390 */
+ void (*tcl_ConditionFinalize) (Tcl_Condition *condPtr); /* 391 */
+ void (*tcl_MutexFinalize) (Tcl_Mutex *mutex); /* 392 */
+ int (*tcl_CreateThread) (Tcl_ThreadId *idPtr, Tcl_ThreadCreateProc *proc, void *clientData, TCL_HASH_TYPE stackSize, int flags); /* 393 */
+ Tcl_Size (*tcl_ReadRaw) (Tcl_Channel chan, char *dst, Tcl_Size bytesToRead); /* 394 */
+ Tcl_Size (*tcl_WriteRaw) (Tcl_Channel chan, const char *src, Tcl_Size srcLen); /* 395 */
+ Tcl_Channel (*tcl_GetTopChannel) (Tcl_Channel chan); /* 396 */
+ int (*tcl_ChannelBuffered) (Tcl_Channel chan); /* 397 */
+ const char * (*tcl_ChannelName) (const Tcl_ChannelType *chanTypePtr); /* 398 */
+ Tcl_ChannelTypeVersion (*tcl_ChannelVersion) (const Tcl_ChannelType *chanTypePtr); /* 399 */
+ Tcl_DriverBlockModeProc * (*tcl_ChannelBlockModeProc) (const Tcl_ChannelType *chanTypePtr); /* 400 */
+ void (*reserved401)(void);
+ Tcl_DriverClose2Proc * (*tcl_ChannelClose2Proc) (const Tcl_ChannelType *chanTypePtr); /* 402 */
+ Tcl_DriverInputProc * (*tcl_ChannelInputProc) (const Tcl_ChannelType *chanTypePtr); /* 403 */
+ Tcl_DriverOutputProc * (*tcl_ChannelOutputProc) (const Tcl_ChannelType *chanTypePtr); /* 404 */
+ void (*reserved405)(void);
+ Tcl_DriverSetOptionProc * (*tcl_ChannelSetOptionProc) (const Tcl_ChannelType *chanTypePtr); /* 406 */
+ Tcl_DriverGetOptionProc * (*tcl_ChannelGetOptionProc) (const Tcl_ChannelType *chanTypePtr); /* 407 */
+ Tcl_DriverWatchProc * (*tcl_ChannelWatchProc) (const Tcl_ChannelType *chanTypePtr); /* 408 */
+ Tcl_DriverGetHandleProc * (*tcl_ChannelGetHandleProc) (const Tcl_ChannelType *chanTypePtr); /* 409 */
+ Tcl_DriverFlushProc * (*tcl_ChannelFlushProc) (const Tcl_ChannelType *chanTypePtr); /* 410 */
+ Tcl_DriverHandlerProc * (*tcl_ChannelHandlerProc) (const Tcl_ChannelType *chanTypePtr); /* 411 */
+ int (*tcl_JoinThread) (Tcl_ThreadId threadId, int *result); /* 412 */
+ int (*tcl_IsChannelShared) (Tcl_Channel channel); /* 413 */
+ int (*tcl_IsChannelRegistered) (Tcl_Interp *interp, Tcl_Channel channel); /* 414 */
+ void (*tcl_CutChannel) (Tcl_Channel channel); /* 415 */
+ void (*tcl_SpliceChannel) (Tcl_Channel channel); /* 416 */
+ void (*tcl_ClearChannelHandlers) (Tcl_Channel channel); /* 417 */
+ int (*tcl_IsChannelExisting) (const char *channelName); /* 418 */
+ void (*reserved419)(void);
+ void (*reserved420)(void);
+ void (*reserved421)(void);
+ Tcl_HashEntry * (*tcl_CreateHashEntry) (Tcl_HashTable *tablePtr, const void *key, int *newPtr); /* 422 */
+ void (*tcl_InitCustomHashTable) (Tcl_HashTable *tablePtr, int keyType, const Tcl_HashKeyType *typePtr); /* 423 */
+ void (*tcl_InitObjHashTable) (Tcl_HashTable *tablePtr); /* 424 */
+ void * (*tcl_CommandTraceInfo) (Tcl_Interp *interp, const char *varName, int flags, Tcl_CommandTraceProc *procPtr, void *prevClientData); /* 425 */
+ int (*tcl_TraceCommand) (Tcl_Interp *interp, const char *varName, int flags, Tcl_CommandTraceProc *proc, void *clientData); /* 426 */
+ void (*tcl_UntraceCommand) (Tcl_Interp *interp, const char *varName, int flags, Tcl_CommandTraceProc *proc, void *clientData); /* 427 */
+ void * (*tcl_AttemptAlloc) (TCL_HASH_TYPE size); /* 428 */
+ void * (*tcl_AttemptDbCkalloc) (TCL_HASH_TYPE size, const char *file, int line); /* 429 */
+ void * (*tcl_AttemptRealloc) (void *ptr, TCL_HASH_TYPE size); /* 430 */
+ void * (*tcl_AttemptDbCkrealloc) (void *ptr, TCL_HASH_TYPE size, const char *file, int line); /* 431 */
+ int (*tcl_AttemptSetObjLength) (Tcl_Obj *objPtr, Tcl_Size length); /* 432 */
+ Tcl_ThreadId (*tcl_GetChannelThread) (Tcl_Channel channel); /* 433 */
+ Tcl_UniChar * (*tclGetUnicodeFromObj) (Tcl_Obj *objPtr, void *lengthPtr); /* 434 */
+ void (*reserved435)(void);
+ void (*reserved436)(void);
+ Tcl_Obj * (*tcl_SubstObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 437 */
+ int (*tcl_DetachChannel) (Tcl_Interp *interp, Tcl_Channel channel); /* 438 */
+ int (*tcl_IsStandardChannel) (Tcl_Channel channel); /* 439 */
+ int (*tcl_FSCopyFile) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr); /* 440 */
+ int (*tcl_FSCopyDirectory) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr); /* 441 */
+ int (*tcl_FSCreateDirectory) (Tcl_Obj *pathPtr); /* 442 */
+ int (*tcl_FSDeleteFile) (Tcl_Obj *pathPtr); /* 443 */
+ int (*tcl_FSLoadFile) (Tcl_Interp *interp, Tcl_Obj *pathPtr, const char *sym1, const char *sym2, Tcl_LibraryInitProc **proc1Ptr, Tcl_LibraryInitProc **proc2Ptr, Tcl_LoadHandle *handlePtr, Tcl_FSUnloadFileProc **unloadProcPtr); /* 444 */
+ int (*tcl_FSMatchInDirectory) (Tcl_Interp *interp, Tcl_Obj *result, Tcl_Obj *pathPtr, const char *pattern, Tcl_GlobTypeData *types); /* 445 */
+ Tcl_Obj * (*tcl_FSLink) (Tcl_Obj *pathPtr, Tcl_Obj *toPtr, int linkAction); /* 446 */
+ int (*tcl_FSRemoveDirectory) (Tcl_Obj *pathPtr, int recursive, Tcl_Obj **errorPtr); /* 447 */
+ int (*tcl_FSRenameFile) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr); /* 448 */
+ int (*tcl_FSLstat) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf); /* 449 */
+ int (*tcl_FSUtime) (Tcl_Obj *pathPtr, struct utimbuf *tval); /* 450 */
+ int (*tcl_FSFileAttrsGet) (Tcl_Interp *interp, int index, Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef); /* 451 */
+ int (*tcl_FSFileAttrsSet) (Tcl_Interp *interp, int index, Tcl_Obj *pathPtr, Tcl_Obj *objPtr); /* 452 */
+ const char *const * (*tcl_FSFileAttrStrings) (Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef); /* 453 */
+ int (*tcl_FSStat) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf); /* 454 */
+ int (*tcl_FSAccess) (Tcl_Obj *pathPtr, int mode); /* 455 */
+ Tcl_Channel (*tcl_FSOpenFileChannel) (Tcl_Interp *interp, Tcl_Obj *pathPtr, const char *modeString, int permissions); /* 456 */
+ Tcl_Obj * (*tcl_FSGetCwd) (Tcl_Interp *interp); /* 457 */
+ int (*tcl_FSChdir) (Tcl_Obj *pathPtr); /* 458 */
+ int (*tcl_FSConvertToPathType) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 459 */
+ Tcl_Obj * (*tcl_FSJoinPath) (Tcl_Obj *listObj, Tcl_Size elements); /* 460 */
+ Tcl_Obj * (*tclFSSplitPath) (Tcl_Obj *pathPtr, void *lenPtr); /* 461 */
+ int (*tcl_FSEqualPaths) (Tcl_Obj *firstPtr, Tcl_Obj *secondPtr); /* 462 */
+ Tcl_Obj * (*tcl_FSGetNormalizedPath) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 463 */
+ Tcl_Obj * (*tcl_FSJoinToPath) (Tcl_Obj *pathPtr, Tcl_Size objc, Tcl_Obj *const objv[]); /* 464 */
+ void * (*tcl_FSGetInternalRep) (Tcl_Obj *pathPtr, const Tcl_Filesystem *fsPtr); /* 465 */
+ Tcl_Obj * (*tcl_FSGetTranslatedPath) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 466 */
+ int (*tcl_FSEvalFile) (Tcl_Interp *interp, Tcl_Obj *fileName); /* 467 */
+ Tcl_Obj * (*tcl_FSNewNativePath) (const Tcl_Filesystem *fromFilesystem, void *clientData); /* 468 */
+ const void * (*tcl_FSGetNativePath) (Tcl_Obj *pathPtr); /* 469 */
+ Tcl_Obj * (*tcl_FSFileSystemInfo) (Tcl_Obj *pathPtr); /* 470 */
+ Tcl_Obj * (*tcl_FSPathSeparator) (Tcl_Obj *pathPtr); /* 471 */
+ Tcl_Obj * (*tcl_FSListVolumes) (void); /* 472 */
+ int (*tcl_FSRegister) (void *clientData, const Tcl_Filesystem *fsPtr); /* 473 */
+ int (*tcl_FSUnregister) (const Tcl_Filesystem *fsPtr); /* 474 */
+ void * (*tcl_FSData) (const Tcl_Filesystem *fsPtr); /* 475 */
+ const char * (*tcl_FSGetTranslatedStringPath) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 476 */
+ const Tcl_Filesystem * (*tcl_FSGetFileSystemForPath) (Tcl_Obj *pathPtr); /* 477 */
+ Tcl_PathType (*tcl_FSGetPathType) (Tcl_Obj *pathPtr); /* 478 */
+ int (*tcl_OutputBuffered) (Tcl_Channel chan); /* 479 */
+ void (*tcl_FSMountsChanged) (const Tcl_Filesystem *fsPtr); /* 480 */
+ int (*tcl_EvalTokensStandard) (Tcl_Interp *interp, Tcl_Token *tokenPtr, Tcl_Size count); /* 481 */
+ void (*tcl_GetTime) (Tcl_Time *timeBuf); /* 482 */
+ Tcl_Trace (*tcl_CreateObjTrace) (Tcl_Interp *interp, Tcl_Size level, int flags, Tcl_CmdObjTraceProc *objProc, void *clientData, Tcl_CmdObjTraceDeleteProc *delProc); /* 483 */
+ int (*tcl_GetCommandInfoFromToken) (Tcl_Command token, Tcl_CmdInfo *infoPtr); /* 484 */
+ int (*tcl_SetCommandInfoFromToken) (Tcl_Command token, const Tcl_CmdInfo *infoPtr); /* 485 */
+ Tcl_Obj * (*tcl_DbNewWideIntObj) (Tcl_WideInt wideValue, const char *file, int line); /* 486 */
+ int (*tcl_GetWideIntFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_WideInt *widePtr); /* 487 */
+ Tcl_Obj * (*tcl_NewWideIntObj) (Tcl_WideInt wideValue); /* 488 */
+ void (*tcl_SetWideIntObj) (Tcl_Obj *objPtr, Tcl_WideInt wideValue); /* 489 */
+ Tcl_StatBuf * (*tcl_AllocStatBuf) (void); /* 490 */
+ long long (*tcl_Seek) (Tcl_Channel chan, long long offset, int mode); /* 491 */
+ long long (*tcl_Tell) (Tcl_Channel chan); /* 492 */
+ Tcl_DriverWideSeekProc * (*tcl_ChannelWideSeekProc) (const Tcl_ChannelType *chanTypePtr); /* 493 */
+ int (*tcl_DictObjPut) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr, Tcl_Obj *valuePtr); /* 494 */
+ int (*tcl_DictObjGet) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr, Tcl_Obj **valuePtrPtr); /* 495 */
+ int (*tcl_DictObjRemove) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr); /* 496 */
+ int (*tclDictObjSize) (Tcl_Interp *interp, Tcl_Obj *dictPtr, void *sizePtr); /* 497 */
+ int (*tcl_DictObjFirst) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_DictSearch *searchPtr, Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr, int *donePtr); /* 498 */
+ void (*tcl_DictObjNext) (Tcl_DictSearch *searchPtr, Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr, int *donePtr); /* 499 */
+ void (*tcl_DictObjDone) (Tcl_DictSearch *searchPtr); /* 500 */
+ int (*tcl_DictObjPutKeyList) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Size keyc, Tcl_Obj *const *keyv, Tcl_Obj *valuePtr); /* 501 */
+ int (*tcl_DictObjRemoveKeyList) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Size keyc, Tcl_Obj *const *keyv); /* 502 */
+ Tcl_Obj * (*tcl_NewDictObj) (void); /* 503 */
+ Tcl_Obj * (*tcl_DbNewDictObj) (const char *file, int line); /* 504 */
+ void (*tcl_RegisterConfig) (Tcl_Interp *interp, const char *pkgName, const Tcl_Config *configuration, const char *valEncoding); /* 505 */
+ Tcl_Namespace * (*tcl_CreateNamespace) (Tcl_Interp *interp, const char *name, void *clientData, Tcl_NamespaceDeleteProc *deleteProc); /* 506 */
+ void (*tcl_DeleteNamespace) (Tcl_Namespace *nsPtr); /* 507 */
+ int (*tcl_AppendExportList) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, Tcl_Obj *objPtr); /* 508 */
+ int (*tcl_Export) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern, int resetListFirst); /* 509 */
+ int (*tcl_Import) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern, int allowOverwrite); /* 510 */
+ int (*tcl_ForgetImport) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern); /* 511 */
+ Tcl_Namespace * (*tcl_GetCurrentNamespace) (Tcl_Interp *interp); /* 512 */
+ Tcl_Namespace * (*tcl_GetGlobalNamespace) (Tcl_Interp *interp); /* 513 */
+ Tcl_Namespace * (*tcl_FindNamespace) (Tcl_Interp *interp, const char *name, Tcl_Namespace *contextNsPtr, int flags); /* 514 */
+ Tcl_Command (*tcl_FindCommand) (Tcl_Interp *interp, const char *name, Tcl_Namespace *contextNsPtr, int flags); /* 515 */
+ Tcl_Command (*tcl_GetCommandFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 516 */
+ void (*tcl_GetCommandFullName) (Tcl_Interp *interp, Tcl_Command command, Tcl_Obj *objPtr); /* 517 */
+ int (*tcl_FSEvalFileEx) (Tcl_Interp *interp, Tcl_Obj *fileName, const char *encodingName); /* 518 */
+ void (*reserved519)(void);
+ void (*tcl_LimitAddHandler) (Tcl_Interp *interp, int type, Tcl_LimitHandlerProc *handlerProc, void *clientData, Tcl_LimitHandlerDeleteProc *deleteProc); /* 520 */
+ void (*tcl_LimitRemoveHandler) (Tcl_Interp *interp, int type, Tcl_LimitHandlerProc *handlerProc, void *clientData); /* 521 */
+ int (*tcl_LimitReady) (Tcl_Interp *interp); /* 522 */
+ int (*tcl_LimitCheck) (Tcl_Interp *interp); /* 523 */
+ int (*tcl_LimitExceeded) (Tcl_Interp *interp); /* 524 */
+ void (*tcl_LimitSetCommands) (Tcl_Interp *interp, Tcl_Size commandLimit); /* 525 */
+ void (*tcl_LimitSetTime) (Tcl_Interp *interp, Tcl_Time *timeLimitPtr); /* 526 */
+ void (*tcl_LimitSetGranularity) (Tcl_Interp *interp, int type, int granularity); /* 527 */
+ int (*tcl_LimitTypeEnabled) (Tcl_Interp *interp, int type); /* 528 */
+ int (*tcl_LimitTypeExceeded) (Tcl_Interp *interp, int type); /* 529 */
+ void (*tcl_LimitTypeSet) (Tcl_Interp *interp, int type); /* 530 */
+ void (*tcl_LimitTypeReset) (Tcl_Interp *interp, int type); /* 531 */
+ Tcl_Size (*tcl_LimitGetCommands) (Tcl_Interp *interp); /* 532 */
+ void (*tcl_LimitGetTime) (Tcl_Interp *interp, Tcl_Time *timeLimitPtr); /* 533 */
+ int (*tcl_LimitGetGranularity) (Tcl_Interp *interp, int type); /* 534 */
+ Tcl_InterpState (*tcl_SaveInterpState) (Tcl_Interp *interp, int status); /* 535 */
+ int (*tcl_RestoreInterpState) (Tcl_Interp *interp, Tcl_InterpState state); /* 536 */
+ void (*tcl_DiscardInterpState) (Tcl_InterpState state); /* 537 */
+ int (*tcl_SetReturnOptions) (Tcl_Interp *interp, Tcl_Obj *options); /* 538 */
+ Tcl_Obj * (*tcl_GetReturnOptions) (Tcl_Interp *interp, int result); /* 539 */
+ int (*tcl_IsEnsemble) (Tcl_Command token); /* 540 */
+ Tcl_Command (*tcl_CreateEnsemble) (Tcl_Interp *interp, const char *name, Tcl_Namespace *namespacePtr, int flags); /* 541 */
+ Tcl_Command (*tcl_FindEnsemble) (Tcl_Interp *interp, Tcl_Obj *cmdNameObj, int flags); /* 542 */
+ int (*tcl_SetEnsembleSubcommandList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *subcmdList); /* 543 */
+ int (*tcl_SetEnsembleMappingDict) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *mapDict); /* 544 */
+ int (*tcl_SetEnsembleUnknownHandler) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *unknownList); /* 545 */
+ int (*tcl_SetEnsembleFlags) (Tcl_Interp *interp, Tcl_Command token, int flags); /* 546 */
+ int (*tcl_GetEnsembleSubcommandList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **subcmdListPtr); /* 547 */
+ int (*tcl_GetEnsembleMappingDict) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **mapDictPtr); /* 548 */
+ int (*tcl_GetEnsembleUnknownHandler) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **unknownListPtr); /* 549 */
+ int (*tcl_GetEnsembleFlags) (Tcl_Interp *interp, Tcl_Command token, int *flagsPtr); /* 550 */
+ int (*tcl_GetEnsembleNamespace) (Tcl_Interp *interp, Tcl_Command token, Tcl_Namespace **namespacePtrPtr); /* 551 */
+ void (*tcl_SetTimeProc) (Tcl_GetTimeProc *getProc, Tcl_ScaleTimeProc *scaleProc, void *clientData); /* 552 */
+ void (*tcl_QueryTimeProc) (Tcl_GetTimeProc **getProc, Tcl_ScaleTimeProc **scaleProc, void **clientData); /* 553 */
+ Tcl_DriverThreadActionProc * (*tcl_ChannelThreadActionProc) (const Tcl_ChannelType *chanTypePtr); /* 554 */
+ Tcl_Obj * (*tcl_NewBignumObj) (void *value); /* 555 */
+ Tcl_Obj * (*tcl_DbNewBignumObj) (void *value, const char *file, int line); /* 556 */
+ void (*tcl_SetBignumObj) (Tcl_Obj *obj, void *value); /* 557 */
+ int (*tcl_GetBignumFromObj) (Tcl_Interp *interp, Tcl_Obj *obj, void *value); /* 558 */
+ int (*tcl_TakeBignumFromObj) (Tcl_Interp *interp, Tcl_Obj *obj, void *value); /* 559 */
+ int (*tcl_TruncateChannel) (Tcl_Channel chan, long long length); /* 560 */
+ Tcl_DriverTruncateProc * (*tcl_ChannelTruncateProc) (const Tcl_ChannelType *chanTypePtr); /* 561 */
+ void (*tcl_SetChannelErrorInterp) (Tcl_Interp *interp, Tcl_Obj *msg); /* 562 */
+ void (*tcl_GetChannelErrorInterp) (Tcl_Interp *interp, Tcl_Obj **msg); /* 563 */
+ void (*tcl_SetChannelError) (Tcl_Channel chan, Tcl_Obj *msg); /* 564 */
+ void (*tcl_GetChannelError) (Tcl_Channel chan, Tcl_Obj **msg); /* 565 */
+ int (*tcl_InitBignumFromDouble) (Tcl_Interp *interp, double initval, void *toInit); /* 566 */
+ Tcl_Obj * (*tcl_GetNamespaceUnknownHandler) (Tcl_Interp *interp, Tcl_Namespace *nsPtr); /* 567 */
+ int (*tcl_SetNamespaceUnknownHandler) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, Tcl_Obj *handlerPtr); /* 568 */
+ int (*tcl_GetEncodingFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Encoding *encodingPtr); /* 569 */
+ Tcl_Obj * (*tcl_GetEncodingSearchPath) (void); /* 570 */
+ int (*tcl_SetEncodingSearchPath) (Tcl_Obj *searchPath); /* 571 */
+ const char * (*tcl_GetEncodingNameFromEnvironment) (Tcl_DString *bufPtr); /* 572 */
+ int (*tcl_PkgRequireProc) (Tcl_Interp *interp, const char *name, Tcl_Size objc, Tcl_Obj *const objv[], void *clientDataPtr); /* 573 */
+ void (*tcl_AppendObjToErrorInfo) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 574 */
+ void (*tcl_AppendLimitedToObj) (Tcl_Obj *objPtr, const char *bytes, Tcl_Size length, Tcl_Size limit, const char *ellipsis); /* 575 */
+ Tcl_Obj * (*tcl_Format) (Tcl_Interp *interp, const char *format, Tcl_Size objc, Tcl_Obj *const objv[]); /* 576 */
+ int (*tcl_AppendFormatToObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, const char *format, Tcl_Size objc, Tcl_Obj *const objv[]); /* 577 */
+ Tcl_Obj * (*tcl_ObjPrintf) (const char *format, ...) TCL_FORMAT_PRINTF(1, 2); /* 578 */
+ void (*tcl_AppendPrintfToObj) (Tcl_Obj *objPtr, const char *format, ...) TCL_FORMAT_PRINTF(2, 3); /* 579 */
+ int (*tcl_CancelEval) (Tcl_Interp *interp, Tcl_Obj *resultObjPtr, void *clientData, int flags); /* 580 */
+ int (*tcl_Canceled) (Tcl_Interp *interp, int flags); /* 581 */
+ int (*tcl_CreatePipe) (Tcl_Interp *interp, Tcl_Channel *rchan, Tcl_Channel *wchan, int flags); /* 582 */
+ Tcl_Command (*tcl_NRCreateCommand) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc *proc, Tcl_ObjCmdProc *nreProc, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 583 */
+ int (*tcl_NREvalObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 584 */
+ int (*tcl_NREvalObjv) (Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[], int flags); /* 585 */
+ int (*tcl_NRCmdSwap) (Tcl_Interp *interp, Tcl_Command cmd, Tcl_Size objc, Tcl_Obj *const objv[], int flags); /* 586 */
+ void (*tcl_NRAddCallback) (Tcl_Interp *interp, Tcl_NRPostProc *postProcPtr, void *data0, void *data1, void *data2, void *data3); /* 587 */
+ int (*tcl_NRCallObjProc) (Tcl_Interp *interp, Tcl_ObjCmdProc *objProc, void *clientData, Tcl_Size objc, Tcl_Obj *const objv[]); /* 588 */
+ unsigned (*tcl_GetFSDeviceFromStat) (const Tcl_StatBuf *statPtr); /* 589 */
+ unsigned (*tcl_GetFSInodeFromStat) (const Tcl_StatBuf *statPtr); /* 590 */
+ unsigned (*tcl_GetModeFromStat) (const Tcl_StatBuf *statPtr); /* 591 */
+ int (*tcl_GetLinkCountFromStat) (const Tcl_StatBuf *statPtr); /* 592 */
+ int (*tcl_GetUserIdFromStat) (const Tcl_StatBuf *statPtr); /* 593 */
+ int (*tcl_GetGroupIdFromStat) (const Tcl_StatBuf *statPtr); /* 594 */
+ int (*tcl_GetDeviceTypeFromStat) (const Tcl_StatBuf *statPtr); /* 595 */
+ long long (*tcl_GetAccessTimeFromStat) (const Tcl_StatBuf *statPtr); /* 596 */
+ long long (*tcl_GetModificationTimeFromStat) (const Tcl_StatBuf *statPtr); /* 597 */
+ long long (*tcl_GetChangeTimeFromStat) (const Tcl_StatBuf *statPtr); /* 598 */
+ unsigned long long (*tcl_GetSizeFromStat) (const Tcl_StatBuf *statPtr); /* 599 */
+ unsigned long long (*tcl_GetBlocksFromStat) (const Tcl_StatBuf *statPtr); /* 600 */
+ unsigned (*tcl_GetBlockSizeFromStat) (const Tcl_StatBuf *statPtr); /* 601 */
+ int (*tcl_SetEnsembleParameterList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *paramList); /* 602 */
+ int (*tcl_GetEnsembleParameterList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **paramListPtr); /* 603 */
+ int (*tclParseArgsObjv) (Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, void *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv); /* 604 */
+ int (*tcl_GetErrorLine) (Tcl_Interp *interp); /* 605 */
+ void (*tcl_SetErrorLine) (Tcl_Interp *interp, int lineNum); /* 606 */
+ void (*tcl_TransferResult) (Tcl_Interp *sourceInterp, int code, Tcl_Interp *targetInterp); /* 607 */
+ int (*tcl_InterpActive) (Tcl_Interp *interp); /* 608 */
+ void (*tcl_BackgroundException) (Tcl_Interp *interp, int code); /* 609 */
+ int (*tcl_ZlibDeflate) (Tcl_Interp *interp, int format, Tcl_Obj *data, int level, Tcl_Obj *gzipHeaderDictObj); /* 610 */
+ int (*tcl_ZlibInflate) (Tcl_Interp *interp, int format, Tcl_Obj *data, Tcl_Size buffersize, Tcl_Obj *gzipHeaderDictObj); /* 611 */
+ unsigned int (*tcl_ZlibCRC32) (unsigned int crc, const unsigned char *buf, Tcl_Size len); /* 612 */
+ unsigned int (*tcl_ZlibAdler32) (unsigned int adler, const unsigned char *buf, Tcl_Size len); /* 613 */
+ int (*tcl_ZlibStreamInit) (Tcl_Interp *interp, int mode, int format, int level, Tcl_Obj *dictObj, Tcl_ZlibStream *zshandle); /* 614 */
+ Tcl_Obj * (*tcl_ZlibStreamGetCommandName) (Tcl_ZlibStream zshandle); /* 615 */
+ int (*tcl_ZlibStreamEof) (Tcl_ZlibStream zshandle); /* 616 */
+ int (*tcl_ZlibStreamChecksum) (Tcl_ZlibStream zshandle); /* 617 */
+ int (*tcl_ZlibStreamPut) (Tcl_ZlibStream zshandle, Tcl_Obj *data, int flush); /* 618 */
+ int (*tcl_ZlibStreamGet) (Tcl_ZlibStream zshandle, Tcl_Obj *data, Tcl_Size count); /* 619 */
+ int (*tcl_ZlibStreamClose) (Tcl_ZlibStream zshandle); /* 620 */
+ int (*tcl_ZlibStreamReset) (Tcl_ZlibStream zshandle); /* 621 */
+ void (*tcl_SetStartupScript) (Tcl_Obj *path, const char *encoding); /* 622 */
+ Tcl_Obj * (*tcl_GetStartupScript) (const char **encodingPtr); /* 623 */
+ int (*tcl_CloseEx) (Tcl_Interp *interp, Tcl_Channel chan, int flags); /* 624 */
+ int (*tcl_NRExprObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Obj *resultPtr); /* 625 */
+ int (*tcl_NRSubstObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 626 */
+ int (*tcl_LoadFile) (Tcl_Interp *interp, Tcl_Obj *pathPtr, const char *const symv[], int flags, void *procPtrs, Tcl_LoadHandle *handlePtr); /* 627 */
+ void * (*tcl_FindSymbol) (Tcl_Interp *interp, Tcl_LoadHandle handle, const char *symbol); /* 628 */
+ int (*tcl_FSUnloadFile) (Tcl_Interp *interp, Tcl_LoadHandle handlePtr); /* 629 */
+ void (*tcl_ZlibStreamSetCompressionDictionary) (Tcl_ZlibStream zhandle, Tcl_Obj *compressionDictionaryObj); /* 630 */
+ Tcl_Channel (*tcl_OpenTcpServerEx) (Tcl_Interp *interp, const char *service, const char *host, unsigned int flags, int backlog, Tcl_TcpAcceptProc *acceptProc, void *callbackData); /* 631 */
+ int (*tclZipfs_Mount) (Tcl_Interp *interp, const char *zipname, const char *mountPoint, const char *passwd); /* 632 */
+ int (*tclZipfs_Unmount) (Tcl_Interp *interp, const char *mountPoint); /* 633 */
+ Tcl_Obj * (*tclZipfs_TclLibrary) (void); /* 634 */
+ int (*tclZipfs_MountBuffer) (Tcl_Interp *interp, const void *data, size_t datalen, const char *mountPoint, int copy); /* 635 */
+ void (*tcl_FreeInternalRep) (Tcl_Obj *objPtr); /* 636 */
+ char * (*tcl_InitStringRep) (Tcl_Obj *objPtr, const char *bytes, TCL_HASH_TYPE numBytes); /* 637 */
+ Tcl_ObjInternalRep * (*tcl_FetchInternalRep) (Tcl_Obj *objPtr, const Tcl_ObjType *typePtr); /* 638 */
+ void (*tcl_StoreInternalRep) (Tcl_Obj *objPtr, const Tcl_ObjType *typePtr, const Tcl_ObjInternalRep *irPtr); /* 639 */
+ int (*tcl_HasStringRep) (Tcl_Obj *objPtr); /* 640 */
+ void (*tcl_IncrRefCount) (Tcl_Obj *objPtr); /* 641 */
+ void (*tcl_DecrRefCount) (Tcl_Obj *objPtr); /* 642 */
+ int (*tcl_IsShared) (Tcl_Obj *objPtr); /* 643 */
+ int (*tcl_LinkArray) (Tcl_Interp *interp, const char *varName, void *addr, int type, Tcl_Size size); /* 644 */
+ int (*tcl_GetIntForIndex) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Size endValue, Tcl_Size *indexPtr); /* 645 */
+ Tcl_Size (*tcl_UtfToUniChar) (const char *src, int *chPtr); /* 646 */
+ char * (*tcl_UniCharToUtfDString) (const int *uniStr, Tcl_Size uniLength, Tcl_DString *dsPtr); /* 647 */
+ int * (*tcl_UtfToUniCharDString) (const char *src, Tcl_Size length, Tcl_DString *dsPtr); /* 648 */
+ unsigned char * (*tclGetBytesFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, void *numBytesPtr); /* 649 */
+ unsigned char * (*tcl_GetBytesFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Size *numBytesPtr); /* 650 */
+ char * (*tcl_GetStringFromObj) (Tcl_Obj *objPtr, Tcl_Size *lengthPtr); /* 651 */
+ Tcl_UniChar * (*tcl_GetUnicodeFromObj) (Tcl_Obj *objPtr, Tcl_Size *lengthPtr); /* 652 */
+ int (*tcl_GetSizeIntFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Size *sizePtr); /* 653 */
+ int (*tcl_UtfCharComplete) (const char *src, Tcl_Size length); /* 654 */
+ const char * (*tcl_UtfNext) (const char *src); /* 655 */
+ const char * (*tcl_UtfPrev) (const char *src, const char *start); /* 656 */
+ int (*tcl_FSTildeExpand) (Tcl_Interp *interp, const char *path, Tcl_DString *dsPtr); /* 657 */
+ int (*tcl_ExternalToUtfDStringEx) (Tcl_Interp *interp, Tcl_Encoding encoding, const char *src, Tcl_Size srcLen, int flags, Tcl_DString *dsPtr, Tcl_Size *errorLocationPtr); /* 658 */
+ int (*tcl_UtfToExternalDStringEx) (Tcl_Interp *interp, Tcl_Encoding encoding, const char *src, Tcl_Size srcLen, int flags, Tcl_DString *dsPtr, Tcl_Size *errorLocationPtr); /* 659 */
+ int (*tcl_AsyncMarkFromSignal) (Tcl_AsyncHandler async, int sigNumber); /* 660 */
+ int (*tcl_ListObjGetElements) (Tcl_Interp *interp, Tcl_Obj *listPtr, Tcl_Size *objcPtr, Tcl_Obj ***objvPtr); /* 661 */
+ int (*tcl_ListObjLength) (Tcl_Interp *interp, Tcl_Obj *listPtr, Tcl_Size *lengthPtr); /* 662 */
+ int (*tcl_DictObjSize) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Size *sizePtr); /* 663 */
+ int (*tcl_SplitList) (Tcl_Interp *interp, const char *listStr, Tcl_Size *argcPtr, const char ***argvPtr); /* 664 */
+ void (*tcl_SplitPath) (const char *path, Tcl_Size *argcPtr, const char ***argvPtr); /* 665 */
+ Tcl_Obj * (*tcl_FSSplitPath) (Tcl_Obj *pathPtr, Tcl_Size *lenPtr); /* 666 */
+ int (*tcl_ParseArgsObjv) (Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, Tcl_Size *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv); /* 667 */
+ Tcl_Size (*tcl_UniCharLen) (const int *uniStr); /* 668 */
+ Tcl_Size (*tcl_NumUtfChars) (const char *src, Tcl_Size length); /* 669 */
+ Tcl_Size (*tcl_GetCharLength) (Tcl_Obj *objPtr); /* 670 */
+ const char * (*tcl_UtfAtIndex) (const char *src, Tcl_Size index); /* 671 */
+ Tcl_Obj * (*tcl_GetRange) (Tcl_Obj *objPtr, Tcl_Size first, Tcl_Size last); /* 672 */
+ int (*tcl_GetUniChar) (Tcl_Obj *objPtr, Tcl_Size index); /* 673 */
+ int (*tcl_GetBool) (Tcl_Interp *interp, const char *src, int flags, char *charPtr); /* 674 */
+ int (*tcl_GetBoolFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags, char *charPtr); /* 675 */
+ Tcl_Command (*tcl_CreateObjCommand2) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc2 *proc2, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 676 */
+ Tcl_Trace (*tcl_CreateObjTrace2) (Tcl_Interp *interp, Tcl_Size level, int flags, Tcl_CmdObjTraceProc2 *objProc2, void *clientData, Tcl_CmdObjTraceDeleteProc *delProc); /* 677 */
+ Tcl_Command (*tcl_NRCreateCommand2) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc2 *proc, Tcl_ObjCmdProc2 *nreProc2, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 678 */
+ int (*tcl_NRCallObjProc2) (Tcl_Interp *interp, Tcl_ObjCmdProc2 *objProc2, void *clientData, Tcl_Size objc, Tcl_Obj *const objv[]); /* 679 */
+ int (*tcl_GetNumberFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, void **clientDataPtr, int *typePtr); /* 680 */
+ int (*tcl_GetNumber) (Tcl_Interp *interp, const char *bytes, Tcl_Size numBytes, void **clientDataPtr, int *typePtr); /* 681 */
+ int (*tcl_RemoveChannelMode) (Tcl_Interp *interp, Tcl_Channel chan, int mode); /* 682 */
+ Tcl_Size (*tcl_GetEncodingNulLength) (Tcl_Encoding encoding); /* 683 */
+ int (*tcl_GetWideUIntFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_WideUInt *uwidePtr); /* 684 */
+ Tcl_Obj * (*tcl_DStringToObj) (Tcl_DString *dsPtr); /* 685 */
+ int (*tcl_UtfNcmp) (const char *s1, const char *s2, size_t n); /* 686 */
+ int (*tcl_UtfNcasecmp) (const char *s1, const char *s2, size_t n); /* 687 */
+ Tcl_Obj * (*tcl_NewWideUIntObj) (Tcl_WideUInt wideValue); /* 688 */
+ void (*tcl_SetWideUIntObj) (Tcl_Obj *objPtr, Tcl_WideUInt uwideValue); /* 689 */
+ void (*tclUnusedStubEntry) (void); /* 690 */
+} TclStubs;
+
+extern const TclStubs *tclStubsPtr;
+
+#ifdef __cplusplus
+}
+#endif
+
+#if defined(USE_TCL_STUBS)
+
+/*
+ * Inline function declarations:
+ */
+
+#define Tcl_PkgProvideEx \
+ (tclStubsPtr->tcl_PkgProvideEx) /* 0 */
+#define Tcl_PkgRequireEx \
+ (tclStubsPtr->tcl_PkgRequireEx) /* 1 */
+#define Tcl_Panic \
+ (tclStubsPtr->tcl_Panic) /* 2 */
+#define Tcl_Alloc \
+ (tclStubsPtr->tcl_Alloc) /* 3 */
+#define Tcl_Free \
+ (tclStubsPtr->tcl_Free) /* 4 */
+#define Tcl_Realloc \
+ (tclStubsPtr->tcl_Realloc) /* 5 */
+#define Tcl_DbCkalloc \
+ (tclStubsPtr->tcl_DbCkalloc) /* 6 */
+#define Tcl_DbCkfree \
+ (tclStubsPtr->tcl_DbCkfree) /* 7 */
+#define Tcl_DbCkrealloc \
+ (tclStubsPtr->tcl_DbCkrealloc) /* 8 */
+#define Tcl_CreateFileHandler \
+ (tclStubsPtr->tcl_CreateFileHandler) /* 9 */
+#define Tcl_DeleteFileHandler \
+ (tclStubsPtr->tcl_DeleteFileHandler) /* 10 */
+#define Tcl_SetTimer \
+ (tclStubsPtr->tcl_SetTimer) /* 11 */
+#define Tcl_Sleep \
+ (tclStubsPtr->tcl_Sleep) /* 12 */
+#define Tcl_WaitForEvent \
+ (tclStubsPtr->tcl_WaitForEvent) /* 13 */
+#define Tcl_AppendAllObjTypes \
+ (tclStubsPtr->tcl_AppendAllObjTypes) /* 14 */
+#define Tcl_AppendStringsToObj \
+ (tclStubsPtr->tcl_AppendStringsToObj) /* 15 */
+#define Tcl_AppendToObj \
+ (tclStubsPtr->tcl_AppendToObj) /* 16 */
+#define Tcl_ConcatObj \
+ (tclStubsPtr->tcl_ConcatObj) /* 17 */
+#define Tcl_ConvertToType \
+ (tclStubsPtr->tcl_ConvertToType) /* 18 */
+#define Tcl_DbDecrRefCount \
+ (tclStubsPtr->tcl_DbDecrRefCount) /* 19 */
+#define Tcl_DbIncrRefCount \
+ (tclStubsPtr->tcl_DbIncrRefCount) /* 20 */
+#define Tcl_DbIsShared \
+ (tclStubsPtr->tcl_DbIsShared) /* 21 */
+/* Slot 22 is reserved */
+#define Tcl_DbNewByteArrayObj \
+ (tclStubsPtr->tcl_DbNewByteArrayObj) /* 23 */
+#define Tcl_DbNewDoubleObj \
+ (tclStubsPtr->tcl_DbNewDoubleObj) /* 24 */
+#define Tcl_DbNewListObj \
+ (tclStubsPtr->tcl_DbNewListObj) /* 25 */
+/* Slot 26 is reserved */
+#define Tcl_DbNewObj \
+ (tclStubsPtr->tcl_DbNewObj) /* 27 */
+#define Tcl_DbNewStringObj \
+ (tclStubsPtr->tcl_DbNewStringObj) /* 28 */
+#define Tcl_DuplicateObj \
+ (tclStubsPtr->tcl_DuplicateObj) /* 29 */
+#define TclFreeObj \
+ (tclStubsPtr->tclFreeObj) /* 30 */
+#define Tcl_GetBoolean \
+ (tclStubsPtr->tcl_GetBoolean) /* 31 */
+#define Tcl_GetBooleanFromObj \
+ (tclStubsPtr->tcl_GetBooleanFromObj) /* 32 */
+#define Tcl_GetByteArrayFromObj \
+ (tclStubsPtr->tcl_GetByteArrayFromObj) /* 33 */
+#define Tcl_GetDouble \
+ (tclStubsPtr->tcl_GetDouble) /* 34 */
+#define Tcl_GetDoubleFromObj \
+ (tclStubsPtr->tcl_GetDoubleFromObj) /* 35 */
+/* Slot 36 is reserved */
+#define Tcl_GetInt \
+ (tclStubsPtr->tcl_GetInt) /* 37 */
+#define Tcl_GetIntFromObj \
+ (tclStubsPtr->tcl_GetIntFromObj) /* 38 */
+#define Tcl_GetLongFromObj \
+ (tclStubsPtr->tcl_GetLongFromObj) /* 39 */
+#define Tcl_GetObjType \
+ (tclStubsPtr->tcl_GetObjType) /* 40 */
+#define TclGetStringFromObj \
+ (tclStubsPtr->tclGetStringFromObj) /* 41 */
+#define Tcl_InvalidateStringRep \
+ (tclStubsPtr->tcl_InvalidateStringRep) /* 42 */
+#define Tcl_ListObjAppendList \
+ (tclStubsPtr->tcl_ListObjAppendList) /* 43 */
+#define Tcl_ListObjAppendElement \
+ (tclStubsPtr->tcl_ListObjAppendElement) /* 44 */
+#define TclListObjGetElements \
+ (tclStubsPtr->tclListObjGetElements) /* 45 */
+#define Tcl_ListObjIndex \
+ (tclStubsPtr->tcl_ListObjIndex) /* 46 */
+#define TclListObjLength \
+ (tclStubsPtr->tclListObjLength) /* 47 */
+#define Tcl_ListObjReplace \
+ (tclStubsPtr->tcl_ListObjReplace) /* 48 */
+/* Slot 49 is reserved */
+#define Tcl_NewByteArrayObj \
+ (tclStubsPtr->tcl_NewByteArrayObj) /* 50 */
+#define Tcl_NewDoubleObj \
+ (tclStubsPtr->tcl_NewDoubleObj) /* 51 */
+/* Slot 52 is reserved */
+#define Tcl_NewListObj \
+ (tclStubsPtr->tcl_NewListObj) /* 53 */
+/* Slot 54 is reserved */
+#define Tcl_NewObj \
+ (tclStubsPtr->tcl_NewObj) /* 55 */
+#define Tcl_NewStringObj \
+ (tclStubsPtr->tcl_NewStringObj) /* 56 */
+/* Slot 57 is reserved */
+#define Tcl_SetByteArrayLength \
+ (tclStubsPtr->tcl_SetByteArrayLength) /* 58 */
+#define Tcl_SetByteArrayObj \
+ (tclStubsPtr->tcl_SetByteArrayObj) /* 59 */
+#define Tcl_SetDoubleObj \
+ (tclStubsPtr->tcl_SetDoubleObj) /* 60 */
+/* Slot 61 is reserved */
+#define Tcl_SetListObj \
+ (tclStubsPtr->tcl_SetListObj) /* 62 */
+/* Slot 63 is reserved */
+#define Tcl_SetObjLength \
+ (tclStubsPtr->tcl_SetObjLength) /* 64 */
+#define Tcl_SetStringObj \
+ (tclStubsPtr->tcl_SetStringObj) /* 65 */
+/* Slot 66 is reserved */
+/* Slot 67 is reserved */
+#define Tcl_AllowExceptions \
+ (tclStubsPtr->tcl_AllowExceptions) /* 68 */
+#define Tcl_AppendElement \
+ (tclStubsPtr->tcl_AppendElement) /* 69 */
+#define Tcl_AppendResult \
+ (tclStubsPtr->tcl_AppendResult) /* 70 */
+#define Tcl_AsyncCreate \
+ (tclStubsPtr->tcl_AsyncCreate) /* 71 */
+#define Tcl_AsyncDelete \
+ (tclStubsPtr->tcl_AsyncDelete) /* 72 */
+#define Tcl_AsyncInvoke \
+ (tclStubsPtr->tcl_AsyncInvoke) /* 73 */
+#define Tcl_AsyncMark \
+ (tclStubsPtr->tcl_AsyncMark) /* 74 */
+#define Tcl_AsyncReady \
+ (tclStubsPtr->tcl_AsyncReady) /* 75 */
+/* Slot 76 is reserved */
+/* Slot 77 is reserved */
+#define Tcl_BadChannelOption \
+ (tclStubsPtr->tcl_BadChannelOption) /* 78 */
+#define Tcl_CallWhenDeleted \
+ (tclStubsPtr->tcl_CallWhenDeleted) /* 79 */
+#define Tcl_CancelIdleCall \
+ (tclStubsPtr->tcl_CancelIdleCall) /* 80 */
+#define Tcl_Close \
+ (tclStubsPtr->tcl_Close) /* 81 */
+#define Tcl_CommandComplete \
+ (tclStubsPtr->tcl_CommandComplete) /* 82 */
+#define Tcl_Concat \
+ (tclStubsPtr->tcl_Concat) /* 83 */
+#define Tcl_ConvertElement \
+ (tclStubsPtr->tcl_ConvertElement) /* 84 */
+#define Tcl_ConvertCountedElement \
+ (tclStubsPtr->tcl_ConvertCountedElement) /* 85 */
+#define Tcl_CreateAlias \
+ (tclStubsPtr->tcl_CreateAlias) /* 86 */
+#define Tcl_CreateAliasObj \
+ (tclStubsPtr->tcl_CreateAliasObj) /* 87 */
+#define Tcl_CreateChannel \
+ (tclStubsPtr->tcl_CreateChannel) /* 88 */
+#define Tcl_CreateChannelHandler \
+ (tclStubsPtr->tcl_CreateChannelHandler) /* 89 */
+#define Tcl_CreateCloseHandler \
+ (tclStubsPtr->tcl_CreateCloseHandler) /* 90 */
+#define Tcl_CreateCommand \
+ (tclStubsPtr->tcl_CreateCommand) /* 91 */
+#define Tcl_CreateEventSource \
+ (tclStubsPtr->tcl_CreateEventSource) /* 92 */
+#define Tcl_CreateExitHandler \
+ (tclStubsPtr->tcl_CreateExitHandler) /* 93 */
+#define Tcl_CreateInterp \
+ (tclStubsPtr->tcl_CreateInterp) /* 94 */
+/* Slot 95 is reserved */
+#define Tcl_CreateObjCommand \
+ (tclStubsPtr->tcl_CreateObjCommand) /* 96 */
+#define Tcl_CreateChild \
+ (tclStubsPtr->tcl_CreateChild) /* 97 */
+#define Tcl_CreateTimerHandler \
+ (tclStubsPtr->tcl_CreateTimerHandler) /* 98 */
+#define Tcl_CreateTrace \
+ (tclStubsPtr->tcl_CreateTrace) /* 99 */
+#define Tcl_DeleteAssocData \
+ (tclStubsPtr->tcl_DeleteAssocData) /* 100 */
+#define Tcl_DeleteChannelHandler \
+ (tclStubsPtr->tcl_DeleteChannelHandler) /* 101 */
+#define Tcl_DeleteCloseHandler \
+ (tclStubsPtr->tcl_DeleteCloseHandler) /* 102 */
+#define Tcl_DeleteCommand \
+ (tclStubsPtr->tcl_DeleteCommand) /* 103 */
+#define Tcl_DeleteCommandFromToken \
+ (tclStubsPtr->tcl_DeleteCommandFromToken) /* 104 */
+#define Tcl_DeleteEvents \
+ (tclStubsPtr->tcl_DeleteEvents) /* 105 */
+#define Tcl_DeleteEventSource \
+ (tclStubsPtr->tcl_DeleteEventSource) /* 106 */
+#define Tcl_DeleteExitHandler \
+ (tclStubsPtr->tcl_DeleteExitHandler) /* 107 */
+#define Tcl_DeleteHashEntry \
+ (tclStubsPtr->tcl_DeleteHashEntry) /* 108 */
+#define Tcl_DeleteHashTable \
+ (tclStubsPtr->tcl_DeleteHashTable) /* 109 */
+#define Tcl_DeleteInterp \
+ (tclStubsPtr->tcl_DeleteInterp) /* 110 */
+#define Tcl_DetachPids \
+ (tclStubsPtr->tcl_DetachPids) /* 111 */
+#define Tcl_DeleteTimerHandler \
+ (tclStubsPtr->tcl_DeleteTimerHandler) /* 112 */
+#define Tcl_DeleteTrace \
+ (tclStubsPtr->tcl_DeleteTrace) /* 113 */
+#define Tcl_DontCallWhenDeleted \
+ (tclStubsPtr->tcl_DontCallWhenDeleted) /* 114 */
+#define Tcl_DoOneEvent \
+ (tclStubsPtr->tcl_DoOneEvent) /* 115 */
+#define Tcl_DoWhenIdle \
+ (tclStubsPtr->tcl_DoWhenIdle) /* 116 */
+#define Tcl_DStringAppend \
+ (tclStubsPtr->tcl_DStringAppend) /* 117 */
+#define Tcl_DStringAppendElement \
+ (tclStubsPtr->tcl_DStringAppendElement) /* 118 */
+#define Tcl_DStringEndSublist \
+ (tclStubsPtr->tcl_DStringEndSublist) /* 119 */
+#define Tcl_DStringFree \
+ (tclStubsPtr->tcl_DStringFree) /* 120 */
+#define Tcl_DStringGetResult \
+ (tclStubsPtr->tcl_DStringGetResult) /* 121 */
+#define Tcl_DStringInit \
+ (tclStubsPtr->tcl_DStringInit) /* 122 */
+#define Tcl_DStringResult \
+ (tclStubsPtr->tcl_DStringResult) /* 123 */
+#define Tcl_DStringSetLength \
+ (tclStubsPtr->tcl_DStringSetLength) /* 124 */
+#define Tcl_DStringStartSublist \
+ (tclStubsPtr->tcl_DStringStartSublist) /* 125 */
+#define Tcl_Eof \
+ (tclStubsPtr->tcl_Eof) /* 126 */
+#define Tcl_ErrnoId \
+ (tclStubsPtr->tcl_ErrnoId) /* 127 */
+#define Tcl_ErrnoMsg \
+ (tclStubsPtr->tcl_ErrnoMsg) /* 128 */
+/* Slot 129 is reserved */
+#define Tcl_EvalFile \
+ (tclStubsPtr->tcl_EvalFile) /* 130 */
+/* Slot 131 is reserved */
+#define Tcl_EventuallyFree \
+ (tclStubsPtr->tcl_EventuallyFree) /* 132 */
+#define Tcl_Exit \
+ (tclStubsPtr->tcl_Exit) /* 133 */
+#define Tcl_ExposeCommand \
+ (tclStubsPtr->tcl_ExposeCommand) /* 134 */
+#define Tcl_ExprBoolean \
+ (tclStubsPtr->tcl_ExprBoolean) /* 135 */
+#define Tcl_ExprBooleanObj \
+ (tclStubsPtr->tcl_ExprBooleanObj) /* 136 */
+#define Tcl_ExprDouble \
+ (tclStubsPtr->tcl_ExprDouble) /* 137 */
+#define Tcl_ExprDoubleObj \
+ (tclStubsPtr->tcl_ExprDoubleObj) /* 138 */
+#define Tcl_ExprLong \
+ (tclStubsPtr->tcl_ExprLong) /* 139 */
+#define Tcl_ExprLongObj \
+ (tclStubsPtr->tcl_ExprLongObj) /* 140 */
+#define Tcl_ExprObj \
+ (tclStubsPtr->tcl_ExprObj) /* 141 */
+#define Tcl_ExprString \
+ (tclStubsPtr->tcl_ExprString) /* 142 */
+#define Tcl_Finalize \
+ (tclStubsPtr->tcl_Finalize) /* 143 */
+/* Slot 144 is reserved */
+#define Tcl_FirstHashEntry \
+ (tclStubsPtr->tcl_FirstHashEntry) /* 145 */
+#define Tcl_Flush \
+ (tclStubsPtr->tcl_Flush) /* 146 */
+/* Slot 147 is reserved */
+/* Slot 148 is reserved */
+#define TclGetAliasObj \
+ (tclStubsPtr->tclGetAliasObj) /* 149 */
+#define Tcl_GetAssocData \
+ (tclStubsPtr->tcl_GetAssocData) /* 150 */
+#define Tcl_GetChannel \
+ (tclStubsPtr->tcl_GetChannel) /* 151 */
+#define Tcl_GetChannelBufferSize \
+ (tclStubsPtr->tcl_GetChannelBufferSize) /* 152 */
+#define Tcl_GetChannelHandle \
+ (tclStubsPtr->tcl_GetChannelHandle) /* 153 */
+#define Tcl_GetChannelInstanceData \
+ (tclStubsPtr->tcl_GetChannelInstanceData) /* 154 */
+#define Tcl_GetChannelMode \
+ (tclStubsPtr->tcl_GetChannelMode) /* 155 */
+#define Tcl_GetChannelName \
+ (tclStubsPtr->tcl_GetChannelName) /* 156 */
+#define Tcl_GetChannelOption \
+ (tclStubsPtr->tcl_GetChannelOption) /* 157 */
+#define Tcl_GetChannelType \
+ (tclStubsPtr->tcl_GetChannelType) /* 158 */
+#define Tcl_GetCommandInfo \
+ (tclStubsPtr->tcl_GetCommandInfo) /* 159 */
+#define Tcl_GetCommandName \
+ (tclStubsPtr->tcl_GetCommandName) /* 160 */
+#define Tcl_GetErrno \
+ (tclStubsPtr->tcl_GetErrno) /* 161 */
+#define Tcl_GetHostName \
+ (tclStubsPtr->tcl_GetHostName) /* 162 */
+#define Tcl_GetInterpPath \
+ (tclStubsPtr->tcl_GetInterpPath) /* 163 */
+#define Tcl_GetParent \
+ (tclStubsPtr->tcl_GetParent) /* 164 */
+#define Tcl_GetNameOfExecutable \
+ (tclStubsPtr->tcl_GetNameOfExecutable) /* 165 */
+#define Tcl_GetObjResult \
+ (tclStubsPtr->tcl_GetObjResult) /* 166 */
+#define Tcl_GetOpenFile \
+ (tclStubsPtr->tcl_GetOpenFile) /* 167 */
+#define Tcl_GetPathType \
+ (tclStubsPtr->tcl_GetPathType) /* 168 */
+#define Tcl_Gets \
+ (tclStubsPtr->tcl_Gets) /* 169 */
+#define Tcl_GetsObj \
+ (tclStubsPtr->tcl_GetsObj) /* 170 */
+#define Tcl_GetServiceMode \
+ (tclStubsPtr->tcl_GetServiceMode) /* 171 */
+#define Tcl_GetChild \
+ (tclStubsPtr->tcl_GetChild) /* 172 */
+#define Tcl_GetStdChannel \
+ (tclStubsPtr->tcl_GetStdChannel) /* 173 */
+/* Slot 174 is reserved */
+/* Slot 175 is reserved */
+#define Tcl_GetVar2 \
+ (tclStubsPtr->tcl_GetVar2) /* 176 */
+/* Slot 177 is reserved */
+/* Slot 178 is reserved */
+#define Tcl_HideCommand \
+ (tclStubsPtr->tcl_HideCommand) /* 179 */
+#define Tcl_Init \
+ (tclStubsPtr->tcl_Init) /* 180 */
+#define Tcl_InitHashTable \
+ (tclStubsPtr->tcl_InitHashTable) /* 181 */
+#define Tcl_InputBlocked \
+ (tclStubsPtr->tcl_InputBlocked) /* 182 */
+#define Tcl_InputBuffered \
+ (tclStubsPtr->tcl_InputBuffered) /* 183 */
+#define Tcl_InterpDeleted \
+ (tclStubsPtr->tcl_InterpDeleted) /* 184 */
+#define Tcl_IsSafe \
+ (tclStubsPtr->tcl_IsSafe) /* 185 */
+#define Tcl_JoinPath \
+ (tclStubsPtr->tcl_JoinPath) /* 186 */
+#define Tcl_LinkVar \
+ (tclStubsPtr->tcl_LinkVar) /* 187 */
+/* Slot 188 is reserved */
+#define Tcl_MakeFileChannel \
+ (tclStubsPtr->tcl_MakeFileChannel) /* 189 */
+/* Slot 190 is reserved */
+#define Tcl_MakeTcpClientChannel \
+ (tclStubsPtr->tcl_MakeTcpClientChannel) /* 191 */
+#define Tcl_Merge \
+ (tclStubsPtr->tcl_Merge) /* 192 */
+#define Tcl_NextHashEntry \
+ (tclStubsPtr->tcl_NextHashEntry) /* 193 */
+#define Tcl_NotifyChannel \
+ (tclStubsPtr->tcl_NotifyChannel) /* 194 */
+#define Tcl_ObjGetVar2 \
+ (tclStubsPtr->tcl_ObjGetVar2) /* 195 */
+#define Tcl_ObjSetVar2 \
+ (tclStubsPtr->tcl_ObjSetVar2) /* 196 */
+#define Tcl_OpenCommandChannel \
+ (tclStubsPtr->tcl_OpenCommandChannel) /* 197 */
+#define Tcl_OpenFileChannel \
+ (tclStubsPtr->tcl_OpenFileChannel) /* 198 */
+#define Tcl_OpenTcpClient \
+ (tclStubsPtr->tcl_OpenTcpClient) /* 199 */
+#define Tcl_OpenTcpServer \
+ (tclStubsPtr->tcl_OpenTcpServer) /* 200 */
+#define Tcl_Preserve \
+ (tclStubsPtr->tcl_Preserve) /* 201 */
+#define Tcl_PrintDouble \
+ (tclStubsPtr->tcl_PrintDouble) /* 202 */
+#define Tcl_PutEnv \
+ (tclStubsPtr->tcl_PutEnv) /* 203 */
+#define Tcl_PosixError \
+ (tclStubsPtr->tcl_PosixError) /* 204 */
+#define Tcl_QueueEvent \
+ (tclStubsPtr->tcl_QueueEvent) /* 205 */
+#define Tcl_Read \
+ (tclStubsPtr->tcl_Read) /* 206 */
+#define Tcl_ReapDetachedProcs \
+ (tclStubsPtr->tcl_ReapDetachedProcs) /* 207 */
+#define Tcl_RecordAndEval \
+ (tclStubsPtr->tcl_RecordAndEval) /* 208 */
+#define Tcl_RecordAndEvalObj \
+ (tclStubsPtr->tcl_RecordAndEvalObj) /* 209 */
+#define Tcl_RegisterChannel \
+ (tclStubsPtr->tcl_RegisterChannel) /* 210 */
+#define Tcl_RegisterObjType \
+ (tclStubsPtr->tcl_RegisterObjType) /* 211 */
+#define Tcl_RegExpCompile \
+ (tclStubsPtr->tcl_RegExpCompile) /* 212 */
+#define Tcl_RegExpExec \
+ (tclStubsPtr->tcl_RegExpExec) /* 213 */
+#define Tcl_RegExpMatch \
+ (tclStubsPtr->tcl_RegExpMatch) /* 214 */
+#define Tcl_RegExpRange \
+ (tclStubsPtr->tcl_RegExpRange) /* 215 */
+#define Tcl_Release \
+ (tclStubsPtr->tcl_Release) /* 216 */
+#define Tcl_ResetResult \
+ (tclStubsPtr->tcl_ResetResult) /* 217 */
+#define Tcl_ScanElement \
+ (tclStubsPtr->tcl_ScanElement) /* 218 */
+#define Tcl_ScanCountedElement \
+ (tclStubsPtr->tcl_ScanCountedElement) /* 219 */
+/* Slot 220 is reserved */
+#define Tcl_ServiceAll \
+ (tclStubsPtr->tcl_ServiceAll) /* 221 */
+#define Tcl_ServiceEvent \
+ (tclStubsPtr->tcl_ServiceEvent) /* 222 */
+#define Tcl_SetAssocData \
+ (tclStubsPtr->tcl_SetAssocData) /* 223 */
+#define Tcl_SetChannelBufferSize \
+ (tclStubsPtr->tcl_SetChannelBufferSize) /* 224 */
+#define Tcl_SetChannelOption \
+ (tclStubsPtr->tcl_SetChannelOption) /* 225 */
+#define Tcl_SetCommandInfo \
+ (tclStubsPtr->tcl_SetCommandInfo) /* 226 */
+#define Tcl_SetErrno \
+ (tclStubsPtr->tcl_SetErrno) /* 227 */
+#define Tcl_SetErrorCode \
+ (tclStubsPtr->tcl_SetErrorCode) /* 228 */
+#define Tcl_SetMaxBlockTime \
+ (tclStubsPtr->tcl_SetMaxBlockTime) /* 229 */
+/* Slot 230 is reserved */
+#define Tcl_SetRecursionLimit \
+ (tclStubsPtr->tcl_SetRecursionLimit) /* 231 */
+/* Slot 232 is reserved */
+#define Tcl_SetServiceMode \
+ (tclStubsPtr->tcl_SetServiceMode) /* 233 */
+#define Tcl_SetObjErrorCode \
+ (tclStubsPtr->tcl_SetObjErrorCode) /* 234 */
+#define Tcl_SetObjResult \
+ (tclStubsPtr->tcl_SetObjResult) /* 235 */
+#define Tcl_SetStdChannel \
+ (tclStubsPtr->tcl_SetStdChannel) /* 236 */
+/* Slot 237 is reserved */
+#define Tcl_SetVar2 \
+ (tclStubsPtr->tcl_SetVar2) /* 238 */
+#define Tcl_SignalId \
+ (tclStubsPtr->tcl_SignalId) /* 239 */
+#define Tcl_SignalMsg \
+ (tclStubsPtr->tcl_SignalMsg) /* 240 */
+#define Tcl_SourceRCFile \
+ (tclStubsPtr->tcl_SourceRCFile) /* 241 */
+#define TclSplitList \
+ (tclStubsPtr->tclSplitList) /* 242 */
+#define TclSplitPath \
+ (tclStubsPtr->tclSplitPath) /* 243 */
+/* Slot 244 is reserved */
+/* Slot 245 is reserved */
+/* Slot 246 is reserved */
+/* Slot 247 is reserved */
+#define Tcl_TraceVar2 \
+ (tclStubsPtr->tcl_TraceVar2) /* 248 */
+#define Tcl_TranslateFileName \
+ (tclStubsPtr->tcl_TranslateFileName) /* 249 */
+#define Tcl_Ungets \
+ (tclStubsPtr->tcl_Ungets) /* 250 */
+#define Tcl_UnlinkVar \
+ (tclStubsPtr->tcl_UnlinkVar) /* 251 */
+#define Tcl_UnregisterChannel \
+ (tclStubsPtr->tcl_UnregisterChannel) /* 252 */
+/* Slot 253 is reserved */
+#define Tcl_UnsetVar2 \
+ (tclStubsPtr->tcl_UnsetVar2) /* 254 */
+/* Slot 255 is reserved */
+#define Tcl_UntraceVar2 \
+ (tclStubsPtr->tcl_UntraceVar2) /* 256 */
+#define Tcl_UpdateLinkedVar \
+ (tclStubsPtr->tcl_UpdateLinkedVar) /* 257 */
+/* Slot 258 is reserved */
+#define Tcl_UpVar2 \
+ (tclStubsPtr->tcl_UpVar2) /* 259 */
+#define Tcl_VarEval \
+ (tclStubsPtr->tcl_VarEval) /* 260 */
+/* Slot 261 is reserved */
+#define Tcl_VarTraceInfo2 \
+ (tclStubsPtr->tcl_VarTraceInfo2) /* 262 */
+#define Tcl_Write \
+ (tclStubsPtr->tcl_Write) /* 263 */
+#define Tcl_WrongNumArgs \
+ (tclStubsPtr->tcl_WrongNumArgs) /* 264 */
+#define Tcl_DumpActiveMemory \
+ (tclStubsPtr->tcl_DumpActiveMemory) /* 265 */
+#define Tcl_ValidateAllMemory \
+ (tclStubsPtr->tcl_ValidateAllMemory) /* 266 */
+/* Slot 267 is reserved */
+/* Slot 268 is reserved */
+#define Tcl_HashStats \
+ (tclStubsPtr->tcl_HashStats) /* 269 */
+#define Tcl_ParseVar \
+ (tclStubsPtr->tcl_ParseVar) /* 270 */
+/* Slot 271 is reserved */
+#define Tcl_PkgPresentEx \
+ (tclStubsPtr->tcl_PkgPresentEx) /* 272 */
+/* Slot 273 is reserved */
+/* Slot 274 is reserved */
+/* Slot 275 is reserved */
+/* Slot 276 is reserved */
+#define Tcl_WaitPid \
+ (tclStubsPtr->tcl_WaitPid) /* 277 */
+/* Slot 278 is reserved */
+#define Tcl_GetVersion \
+ (tclStubsPtr->tcl_GetVersion) /* 279 */
+#define Tcl_InitMemory \
+ (tclStubsPtr->tcl_InitMemory) /* 280 */
+#define Tcl_StackChannel \
+ (tclStubsPtr->tcl_StackChannel) /* 281 */
+#define Tcl_UnstackChannel \
+ (tclStubsPtr->tcl_UnstackChannel) /* 282 */
+#define Tcl_GetStackedChannel \
+ (tclStubsPtr->tcl_GetStackedChannel) /* 283 */
+#define Tcl_SetMainLoop \
+ (tclStubsPtr->tcl_SetMainLoop) /* 284 */
+#define Tcl_GetAliasObj \
+ (tclStubsPtr->tcl_GetAliasObj) /* 285 */
+#define Tcl_AppendObjToObj \
+ (tclStubsPtr->tcl_AppendObjToObj) /* 286 */
+#define Tcl_CreateEncoding \
+ (tclStubsPtr->tcl_CreateEncoding) /* 287 */
+#define Tcl_CreateThreadExitHandler \
+ (tclStubsPtr->tcl_CreateThreadExitHandler) /* 288 */
+#define Tcl_DeleteThreadExitHandler \
+ (tclStubsPtr->tcl_DeleteThreadExitHandler) /* 289 */
+/* Slot 290 is reserved */
+#define Tcl_EvalEx \
+ (tclStubsPtr->tcl_EvalEx) /* 291 */
+#define Tcl_EvalObjv \
+ (tclStubsPtr->tcl_EvalObjv) /* 292 */
+#define Tcl_EvalObjEx \
+ (tclStubsPtr->tcl_EvalObjEx) /* 293 */
+#define Tcl_ExitThread \
+ (tclStubsPtr->tcl_ExitThread) /* 294 */
+#define Tcl_ExternalToUtf \
+ (tclStubsPtr->tcl_ExternalToUtf) /* 295 */
+#define Tcl_ExternalToUtfDString \
+ (tclStubsPtr->tcl_ExternalToUtfDString) /* 296 */
+#define Tcl_FinalizeThread \
+ (tclStubsPtr->tcl_FinalizeThread) /* 297 */
+#define Tcl_FinalizeNotifier \
+ (tclStubsPtr->tcl_FinalizeNotifier) /* 298 */
+#define Tcl_FreeEncoding \
+ (tclStubsPtr->tcl_FreeEncoding) /* 299 */
+#define Tcl_GetCurrentThread \
+ (tclStubsPtr->tcl_GetCurrentThread) /* 300 */
+#define Tcl_GetEncoding \
+ (tclStubsPtr->tcl_GetEncoding) /* 301 */
+#define Tcl_GetEncodingName \
+ (tclStubsPtr->tcl_GetEncodingName) /* 302 */
+#define Tcl_GetEncodingNames \
+ (tclStubsPtr->tcl_GetEncodingNames) /* 303 */
+#define Tcl_GetIndexFromObjStruct \
+ (tclStubsPtr->tcl_GetIndexFromObjStruct) /* 304 */
+#define Tcl_GetThreadData \
+ (tclStubsPtr->tcl_GetThreadData) /* 305 */
+#define Tcl_GetVar2Ex \
+ (tclStubsPtr->tcl_GetVar2Ex) /* 306 */
+#define Tcl_InitNotifier \
+ (tclStubsPtr->tcl_InitNotifier) /* 307 */
+#define Tcl_MutexLock \
+ (tclStubsPtr->tcl_MutexLock) /* 308 */
+#define Tcl_MutexUnlock \
+ (tclStubsPtr->tcl_MutexUnlock) /* 309 */
+#define Tcl_ConditionNotify \
+ (tclStubsPtr->tcl_ConditionNotify) /* 310 */
+#define Tcl_ConditionWait \
+ (tclStubsPtr->tcl_ConditionWait) /* 311 */
+#define TclNumUtfChars \
+ (tclStubsPtr->tclNumUtfChars) /* 312 */
+#define Tcl_ReadChars \
+ (tclStubsPtr->tcl_ReadChars) /* 313 */
+/* Slot 314 is reserved */
+/* Slot 315 is reserved */
+#define Tcl_SetSystemEncoding \
+ (tclStubsPtr->tcl_SetSystemEncoding) /* 316 */
+#define Tcl_SetVar2Ex \
+ (tclStubsPtr->tcl_SetVar2Ex) /* 317 */
+#define Tcl_ThreadAlert \
+ (tclStubsPtr->tcl_ThreadAlert) /* 318 */
+#define Tcl_ThreadQueueEvent \
+ (tclStubsPtr->tcl_ThreadQueueEvent) /* 319 */
+#define Tcl_UniCharAtIndex \
+ (tclStubsPtr->tcl_UniCharAtIndex) /* 320 */
+#define Tcl_UniCharToLower \
+ (tclStubsPtr->tcl_UniCharToLower) /* 321 */
+#define Tcl_UniCharToTitle \
+ (tclStubsPtr->tcl_UniCharToTitle) /* 322 */
+#define Tcl_UniCharToUpper \
+ (tclStubsPtr->tcl_UniCharToUpper) /* 323 */
+#define Tcl_UniCharToUtf \
+ (tclStubsPtr->tcl_UniCharToUtf) /* 324 */
+#define TclUtfAtIndex \
+ (tclStubsPtr->tclUtfAtIndex) /* 325 */
+#define TclUtfCharComplete \
+ (tclStubsPtr->tclUtfCharComplete) /* 326 */
+#define Tcl_UtfBackslash \
+ (tclStubsPtr->tcl_UtfBackslash) /* 327 */
+#define Tcl_UtfFindFirst \
+ (tclStubsPtr->tcl_UtfFindFirst) /* 328 */
+#define Tcl_UtfFindLast \
+ (tclStubsPtr->tcl_UtfFindLast) /* 329 */
+#define TclUtfNext \
+ (tclStubsPtr->tclUtfNext) /* 330 */
+#define TclUtfPrev \
+ (tclStubsPtr->tclUtfPrev) /* 331 */
+#define Tcl_UtfToExternal \
+ (tclStubsPtr->tcl_UtfToExternal) /* 332 */
+#define Tcl_UtfToExternalDString \
+ (tclStubsPtr->tcl_UtfToExternalDString) /* 333 */
+#define Tcl_UtfToLower \
+ (tclStubsPtr->tcl_UtfToLower) /* 334 */
+#define Tcl_UtfToTitle \
+ (tclStubsPtr->tcl_UtfToTitle) /* 335 */
+#define Tcl_UtfToChar16 \
+ (tclStubsPtr->tcl_UtfToChar16) /* 336 */
+#define Tcl_UtfToUpper \
+ (tclStubsPtr->tcl_UtfToUpper) /* 337 */
+#define Tcl_WriteChars \
+ (tclStubsPtr->tcl_WriteChars) /* 338 */
+#define Tcl_WriteObj \
+ (tclStubsPtr->tcl_WriteObj) /* 339 */
+#define Tcl_GetString \
+ (tclStubsPtr->tcl_GetString) /* 340 */
+/* Slot 341 is reserved */
+/* Slot 342 is reserved */
+#define Tcl_AlertNotifier \
+ (tclStubsPtr->tcl_AlertNotifier) /* 343 */
+#define Tcl_ServiceModeHook \
+ (tclStubsPtr->tcl_ServiceModeHook) /* 344 */
+#define Tcl_UniCharIsAlnum \
+ (tclStubsPtr->tcl_UniCharIsAlnum) /* 345 */
+#define Tcl_UniCharIsAlpha \
+ (tclStubsPtr->tcl_UniCharIsAlpha) /* 346 */
+#define Tcl_UniCharIsDigit \
+ (tclStubsPtr->tcl_UniCharIsDigit) /* 347 */
+#define Tcl_UniCharIsLower \
+ (tclStubsPtr->tcl_UniCharIsLower) /* 348 */
+#define Tcl_UniCharIsSpace \
+ (tclStubsPtr->tcl_UniCharIsSpace) /* 349 */
+#define Tcl_UniCharIsUpper \
+ (tclStubsPtr->tcl_UniCharIsUpper) /* 350 */
+#define Tcl_UniCharIsWordChar \
+ (tclStubsPtr->tcl_UniCharIsWordChar) /* 351 */
+#define Tcl_Char16Len \
+ (tclStubsPtr->tcl_Char16Len) /* 352 */
+/* Slot 353 is reserved */
+#define Tcl_Char16ToUtfDString \
+ (tclStubsPtr->tcl_Char16ToUtfDString) /* 354 */
+#define Tcl_UtfToChar16DString \
+ (tclStubsPtr->tcl_UtfToChar16DString) /* 355 */
+#define Tcl_GetRegExpFromObj \
+ (tclStubsPtr->tcl_GetRegExpFromObj) /* 356 */
+/* Slot 357 is reserved */
+#define Tcl_FreeParse \
+ (tclStubsPtr->tcl_FreeParse) /* 358 */
+#define Tcl_LogCommandInfo \
+ (tclStubsPtr->tcl_LogCommandInfo) /* 359 */
+#define Tcl_ParseBraces \
+ (tclStubsPtr->tcl_ParseBraces) /* 360 */
+#define Tcl_ParseCommand \
+ (tclStubsPtr->tcl_ParseCommand) /* 361 */
+#define Tcl_ParseExpr \
+ (tclStubsPtr->tcl_ParseExpr) /* 362 */
+#define Tcl_ParseQuotedString \
+ (tclStubsPtr->tcl_ParseQuotedString) /* 363 */
+#define Tcl_ParseVarName \
+ (tclStubsPtr->tcl_ParseVarName) /* 364 */
+#define Tcl_GetCwd \
+ (tclStubsPtr->tcl_GetCwd) /* 365 */
+#define Tcl_Chdir \
+ (tclStubsPtr->tcl_Chdir) /* 366 */
+#define Tcl_Access \
+ (tclStubsPtr->tcl_Access) /* 367 */
+#define Tcl_Stat \
+ (tclStubsPtr->tcl_Stat) /* 368 */
+#define TclUtfNcmp \
+ (tclStubsPtr->tclUtfNcmp) /* 369 */
+#define TclUtfNcasecmp \
+ (tclStubsPtr->tclUtfNcasecmp) /* 370 */
+#define Tcl_StringCaseMatch \
+ (tclStubsPtr->tcl_StringCaseMatch) /* 371 */
+#define Tcl_UniCharIsControl \
+ (tclStubsPtr->tcl_UniCharIsControl) /* 372 */
+#define Tcl_UniCharIsGraph \
+ (tclStubsPtr->tcl_UniCharIsGraph) /* 373 */
+#define Tcl_UniCharIsPrint \
+ (tclStubsPtr->tcl_UniCharIsPrint) /* 374 */
+#define Tcl_UniCharIsPunct \
+ (tclStubsPtr->tcl_UniCharIsPunct) /* 375 */
+#define Tcl_RegExpExecObj \
+ (tclStubsPtr->tcl_RegExpExecObj) /* 376 */
+#define Tcl_RegExpGetInfo \
+ (tclStubsPtr->tcl_RegExpGetInfo) /* 377 */
+#define Tcl_NewUnicodeObj \
+ (tclStubsPtr->tcl_NewUnicodeObj) /* 378 */
+#define Tcl_SetUnicodeObj \
+ (tclStubsPtr->tcl_SetUnicodeObj) /* 379 */
+#define TclGetCharLength \
+ (tclStubsPtr->tclGetCharLength) /* 380 */
+#define TclGetUniChar \
+ (tclStubsPtr->tclGetUniChar) /* 381 */
+/* Slot 382 is reserved */
+#define TclGetRange \
+ (tclStubsPtr->tclGetRange) /* 383 */
+#define Tcl_AppendUnicodeToObj \
+ (tclStubsPtr->tcl_AppendUnicodeToObj) /* 384 */
+#define Tcl_RegExpMatchObj \
+ (tclStubsPtr->tcl_RegExpMatchObj) /* 385 */
+#define Tcl_SetNotifier \
+ (tclStubsPtr->tcl_SetNotifier) /* 386 */
+#define Tcl_GetAllocMutex \
+ (tclStubsPtr->tcl_GetAllocMutex) /* 387 */
+#define Tcl_GetChannelNames \
+ (tclStubsPtr->tcl_GetChannelNames) /* 388 */
+#define Tcl_GetChannelNamesEx \
+ (tclStubsPtr->tcl_GetChannelNamesEx) /* 389 */
+#define Tcl_ProcObjCmd \
+ (tclStubsPtr->tcl_ProcObjCmd) /* 390 */
+#define Tcl_ConditionFinalize \
+ (tclStubsPtr->tcl_ConditionFinalize) /* 391 */
+#define Tcl_MutexFinalize \
+ (tclStubsPtr->tcl_MutexFinalize) /* 392 */
+#define Tcl_CreateThread \
+ (tclStubsPtr->tcl_CreateThread) /* 393 */
+#define Tcl_ReadRaw \
+ (tclStubsPtr->tcl_ReadRaw) /* 394 */
+#define Tcl_WriteRaw \
+ (tclStubsPtr->tcl_WriteRaw) /* 395 */
+#define Tcl_GetTopChannel \
+ (tclStubsPtr->tcl_GetTopChannel) /* 396 */
+#define Tcl_ChannelBuffered \
+ (tclStubsPtr->tcl_ChannelBuffered) /* 397 */
+#define Tcl_ChannelName \
+ (tclStubsPtr->tcl_ChannelName) /* 398 */
+#define Tcl_ChannelVersion \
+ (tclStubsPtr->tcl_ChannelVersion) /* 399 */
+#define Tcl_ChannelBlockModeProc \
+ (tclStubsPtr->tcl_ChannelBlockModeProc) /* 400 */
+/* Slot 401 is reserved */
+#define Tcl_ChannelClose2Proc \
+ (tclStubsPtr->tcl_ChannelClose2Proc) /* 402 */
+#define Tcl_ChannelInputProc \
+ (tclStubsPtr->tcl_ChannelInputProc) /* 403 */
+#define Tcl_ChannelOutputProc \
+ (tclStubsPtr->tcl_ChannelOutputProc) /* 404 */
+/* Slot 405 is reserved */
+#define Tcl_ChannelSetOptionProc \
+ (tclStubsPtr->tcl_ChannelSetOptionProc) /* 406 */
+#define Tcl_ChannelGetOptionProc \
+ (tclStubsPtr->tcl_ChannelGetOptionProc) /* 407 */
+#define Tcl_ChannelWatchProc \
+ (tclStubsPtr->tcl_ChannelWatchProc) /* 408 */
+#define Tcl_ChannelGetHandleProc \
+ (tclStubsPtr->tcl_ChannelGetHandleProc) /* 409 */
+#define Tcl_ChannelFlushProc \
+ (tclStubsPtr->tcl_ChannelFlushProc) /* 410 */
+#define Tcl_ChannelHandlerProc \
+ (tclStubsPtr->tcl_ChannelHandlerProc) /* 411 */
+#define Tcl_JoinThread \
+ (tclStubsPtr->tcl_JoinThread) /* 412 */
+#define Tcl_IsChannelShared \
+ (tclStubsPtr->tcl_IsChannelShared) /* 413 */
+#define Tcl_IsChannelRegistered \
+ (tclStubsPtr->tcl_IsChannelRegistered) /* 414 */
+#define Tcl_CutChannel \
+ (tclStubsPtr->tcl_CutChannel) /* 415 */
+#define Tcl_SpliceChannel \
+ (tclStubsPtr->tcl_SpliceChannel) /* 416 */
+#define Tcl_ClearChannelHandlers \
+ (tclStubsPtr->tcl_ClearChannelHandlers) /* 417 */
+#define Tcl_IsChannelExisting \
+ (tclStubsPtr->tcl_IsChannelExisting) /* 418 */
+/* Slot 419 is reserved */
+/* Slot 420 is reserved */
+/* Slot 421 is reserved */
+#define Tcl_CreateHashEntry \
+ (tclStubsPtr->tcl_CreateHashEntry) /* 422 */
+#define Tcl_InitCustomHashTable \
+ (tclStubsPtr->tcl_InitCustomHashTable) /* 423 */
+#define Tcl_InitObjHashTable \
+ (tclStubsPtr->tcl_InitObjHashTable) /* 424 */
+#define Tcl_CommandTraceInfo \
+ (tclStubsPtr->tcl_CommandTraceInfo) /* 425 */
+#define Tcl_TraceCommand \
+ (tclStubsPtr->tcl_TraceCommand) /* 426 */
+#define Tcl_UntraceCommand \
+ (tclStubsPtr->tcl_UntraceCommand) /* 427 */
+#define Tcl_AttemptAlloc \
+ (tclStubsPtr->tcl_AttemptAlloc) /* 428 */
+#define Tcl_AttemptDbCkalloc \
+ (tclStubsPtr->tcl_AttemptDbCkalloc) /* 429 */
+#define Tcl_AttemptRealloc \
+ (tclStubsPtr->tcl_AttemptRealloc) /* 430 */
+#define Tcl_AttemptDbCkrealloc \
+ (tclStubsPtr->tcl_AttemptDbCkrealloc) /* 431 */
+#define Tcl_AttemptSetObjLength \
+ (tclStubsPtr->tcl_AttemptSetObjLength) /* 432 */
+#define Tcl_GetChannelThread \
+ (tclStubsPtr->tcl_GetChannelThread) /* 433 */
+#define TclGetUnicodeFromObj \
+ (tclStubsPtr->tclGetUnicodeFromObj) /* 434 */
+/* Slot 435 is reserved */
+/* Slot 436 is reserved */
+#define Tcl_SubstObj \
+ (tclStubsPtr->tcl_SubstObj) /* 437 */
+#define Tcl_DetachChannel \
+ (tclStubsPtr->tcl_DetachChannel) /* 438 */
+#define Tcl_IsStandardChannel \
+ (tclStubsPtr->tcl_IsStandardChannel) /* 439 */
+#define Tcl_FSCopyFile \
+ (tclStubsPtr->tcl_FSCopyFile) /* 440 */
+#define Tcl_FSCopyDirectory \
+ (tclStubsPtr->tcl_FSCopyDirectory) /* 441 */
+#define Tcl_FSCreateDirectory \
+ (tclStubsPtr->tcl_FSCreateDirectory) /* 442 */
+#define Tcl_FSDeleteFile \
+ (tclStubsPtr->tcl_FSDeleteFile) /* 443 */
+#define Tcl_FSLoadFile \
+ (tclStubsPtr->tcl_FSLoadFile) /* 444 */
+#define Tcl_FSMatchInDirectory \
+ (tclStubsPtr->tcl_FSMatchInDirectory) /* 445 */
+#define Tcl_FSLink \
+ (tclStubsPtr->tcl_FSLink) /* 446 */
+#define Tcl_FSRemoveDirectory \
+ (tclStubsPtr->tcl_FSRemoveDirectory) /* 447 */
+#define Tcl_FSRenameFile \
+ (tclStubsPtr->tcl_FSRenameFile) /* 448 */
+#define Tcl_FSLstat \
+ (tclStubsPtr->tcl_FSLstat) /* 449 */
+#define Tcl_FSUtime \
+ (tclStubsPtr->tcl_FSUtime) /* 450 */
+#define Tcl_FSFileAttrsGet \
+ (tclStubsPtr->tcl_FSFileAttrsGet) /* 451 */
+#define Tcl_FSFileAttrsSet \
+ (tclStubsPtr->tcl_FSFileAttrsSet) /* 452 */
+#define Tcl_FSFileAttrStrings \
+ (tclStubsPtr->tcl_FSFileAttrStrings) /* 453 */
+#define Tcl_FSStat \
+ (tclStubsPtr->tcl_FSStat) /* 454 */
+#define Tcl_FSAccess \
+ (tclStubsPtr->tcl_FSAccess) /* 455 */
+#define Tcl_FSOpenFileChannel \
+ (tclStubsPtr->tcl_FSOpenFileChannel) /* 456 */
+#define Tcl_FSGetCwd \
+ (tclStubsPtr->tcl_FSGetCwd) /* 457 */
+#define Tcl_FSChdir \
+ (tclStubsPtr->tcl_FSChdir) /* 458 */
+#define Tcl_FSConvertToPathType \
+ (tclStubsPtr->tcl_FSConvertToPathType) /* 459 */
+#define Tcl_FSJoinPath \
+ (tclStubsPtr->tcl_FSJoinPath) /* 460 */
+#define TclFSSplitPath \
+ (tclStubsPtr->tclFSSplitPath) /* 461 */
+#define Tcl_FSEqualPaths \
+ (tclStubsPtr->tcl_FSEqualPaths) /* 462 */
+#define Tcl_FSGetNormalizedPath \
+ (tclStubsPtr->tcl_FSGetNormalizedPath) /* 463 */
+#define Tcl_FSJoinToPath \
+ (tclStubsPtr->tcl_FSJoinToPath) /* 464 */
+#define Tcl_FSGetInternalRep \
+ (tclStubsPtr->tcl_FSGetInternalRep) /* 465 */
+#define Tcl_FSGetTranslatedPath \
+ (tclStubsPtr->tcl_FSGetTranslatedPath) /* 466 */
+#define Tcl_FSEvalFile \
+ (tclStubsPtr->tcl_FSEvalFile) /* 467 */
+#define Tcl_FSNewNativePath \
+ (tclStubsPtr->tcl_FSNewNativePath) /* 468 */
+#define Tcl_FSGetNativePath \
+ (tclStubsPtr->tcl_FSGetNativePath) /* 469 */
+#define Tcl_FSFileSystemInfo \
+ (tclStubsPtr->tcl_FSFileSystemInfo) /* 470 */
+#define Tcl_FSPathSeparator \
+ (tclStubsPtr->tcl_FSPathSeparator) /* 471 */
+#define Tcl_FSListVolumes \
+ (tclStubsPtr->tcl_FSListVolumes) /* 472 */
+#define Tcl_FSRegister \
+ (tclStubsPtr->tcl_FSRegister) /* 473 */
+#define Tcl_FSUnregister \
+ (tclStubsPtr->tcl_FSUnregister) /* 474 */
+#define Tcl_FSData \
+ (tclStubsPtr->tcl_FSData) /* 475 */
+#define Tcl_FSGetTranslatedStringPath \
+ (tclStubsPtr->tcl_FSGetTranslatedStringPath) /* 476 */
+#define Tcl_FSGetFileSystemForPath \
+ (tclStubsPtr->tcl_FSGetFileSystemForPath) /* 477 */
+#define Tcl_FSGetPathType \
+ (tclStubsPtr->tcl_FSGetPathType) /* 478 */
+#define Tcl_OutputBuffered \
+ (tclStubsPtr->tcl_OutputBuffered) /* 479 */
+#define Tcl_FSMountsChanged \
+ (tclStubsPtr->tcl_FSMountsChanged) /* 480 */
+#define Tcl_EvalTokensStandard \
+ (tclStubsPtr->tcl_EvalTokensStandard) /* 481 */
+#define Tcl_GetTime \
+ (tclStubsPtr->tcl_GetTime) /* 482 */
+#define Tcl_CreateObjTrace \
+ (tclStubsPtr->tcl_CreateObjTrace) /* 483 */
+#define Tcl_GetCommandInfoFromToken \
+ (tclStubsPtr->tcl_GetCommandInfoFromToken) /* 484 */
+#define Tcl_SetCommandInfoFromToken \
+ (tclStubsPtr->tcl_SetCommandInfoFromToken) /* 485 */
+#define Tcl_DbNewWideIntObj \
+ (tclStubsPtr->tcl_DbNewWideIntObj) /* 486 */
+#define Tcl_GetWideIntFromObj \
+ (tclStubsPtr->tcl_GetWideIntFromObj) /* 487 */
+#define Tcl_NewWideIntObj \
+ (tclStubsPtr->tcl_NewWideIntObj) /* 488 */
+#define Tcl_SetWideIntObj \
+ (tclStubsPtr->tcl_SetWideIntObj) /* 489 */
+#define Tcl_AllocStatBuf \
+ (tclStubsPtr->tcl_AllocStatBuf) /* 490 */
+#define Tcl_Seek \
+ (tclStubsPtr->tcl_Seek) /* 491 */
+#define Tcl_Tell \
+ (tclStubsPtr->tcl_Tell) /* 492 */
+#define Tcl_ChannelWideSeekProc \
+ (tclStubsPtr->tcl_ChannelWideSeekProc) /* 493 */
+#define Tcl_DictObjPut \
+ (tclStubsPtr->tcl_DictObjPut) /* 494 */
+#define Tcl_DictObjGet \
+ (tclStubsPtr->tcl_DictObjGet) /* 495 */
+#define Tcl_DictObjRemove \
+ (tclStubsPtr->tcl_DictObjRemove) /* 496 */
+#define TclDictObjSize \
+ (tclStubsPtr->tclDictObjSize) /* 497 */
+#define Tcl_DictObjFirst \
+ (tclStubsPtr->tcl_DictObjFirst) /* 498 */
+#define Tcl_DictObjNext \
+ (tclStubsPtr->tcl_DictObjNext) /* 499 */
+#define Tcl_DictObjDone \
+ (tclStubsPtr->tcl_DictObjDone) /* 500 */
+#define Tcl_DictObjPutKeyList \
+ (tclStubsPtr->tcl_DictObjPutKeyList) /* 501 */
+#define Tcl_DictObjRemoveKeyList \
+ (tclStubsPtr->tcl_DictObjRemoveKeyList) /* 502 */
+#define Tcl_NewDictObj \
+ (tclStubsPtr->tcl_NewDictObj) /* 503 */
+#define Tcl_DbNewDictObj \
+ (tclStubsPtr->tcl_DbNewDictObj) /* 504 */
+#define Tcl_RegisterConfig \
+ (tclStubsPtr->tcl_RegisterConfig) /* 505 */
+#define Tcl_CreateNamespace \
+ (tclStubsPtr->tcl_CreateNamespace) /* 506 */
+#define Tcl_DeleteNamespace \
+ (tclStubsPtr->tcl_DeleteNamespace) /* 507 */
+#define Tcl_AppendExportList \
+ (tclStubsPtr->tcl_AppendExportList) /* 508 */
+#define Tcl_Export \
+ (tclStubsPtr->tcl_Export) /* 509 */
+#define Tcl_Import \
+ (tclStubsPtr->tcl_Import) /* 510 */
+#define Tcl_ForgetImport \
+ (tclStubsPtr->tcl_ForgetImport) /* 511 */
+#define Tcl_GetCurrentNamespace \
+ (tclStubsPtr->tcl_GetCurrentNamespace) /* 512 */
+#define Tcl_GetGlobalNamespace \
+ (tclStubsPtr->tcl_GetGlobalNamespace) /* 513 */
+#define Tcl_FindNamespace \
+ (tclStubsPtr->tcl_FindNamespace) /* 514 */
+#define Tcl_FindCommand \
+ (tclStubsPtr->tcl_FindCommand) /* 515 */
+#define Tcl_GetCommandFromObj \
+ (tclStubsPtr->tcl_GetCommandFromObj) /* 516 */
+#define Tcl_GetCommandFullName \
+ (tclStubsPtr->tcl_GetCommandFullName) /* 517 */
+#define Tcl_FSEvalFileEx \
+ (tclStubsPtr->tcl_FSEvalFileEx) /* 518 */
+/* Slot 519 is reserved */
+#define Tcl_LimitAddHandler \
+ (tclStubsPtr->tcl_LimitAddHandler) /* 520 */
+#define Tcl_LimitRemoveHandler \
+ (tclStubsPtr->tcl_LimitRemoveHandler) /* 521 */
+#define Tcl_LimitReady \
+ (tclStubsPtr->tcl_LimitReady) /* 522 */
+#define Tcl_LimitCheck \
+ (tclStubsPtr->tcl_LimitCheck) /* 523 */
+#define Tcl_LimitExceeded \
+ (tclStubsPtr->tcl_LimitExceeded) /* 524 */
+#define Tcl_LimitSetCommands \
+ (tclStubsPtr->tcl_LimitSetCommands) /* 525 */
+#define Tcl_LimitSetTime \
+ (tclStubsPtr->tcl_LimitSetTime) /* 526 */
+#define Tcl_LimitSetGranularity \
+ (tclStubsPtr->tcl_LimitSetGranularity) /* 527 */
+#define Tcl_LimitTypeEnabled \
+ (tclStubsPtr->tcl_LimitTypeEnabled) /* 528 */
+#define Tcl_LimitTypeExceeded \
+ (tclStubsPtr->tcl_LimitTypeExceeded) /* 529 */
+#define Tcl_LimitTypeSet \
+ (tclStubsPtr->tcl_LimitTypeSet) /* 530 */
+#define Tcl_LimitTypeReset \
+ (tclStubsPtr->tcl_LimitTypeReset) /* 531 */
+#define Tcl_LimitGetCommands \
+ (tclStubsPtr->tcl_LimitGetCommands) /* 532 */
+#define Tcl_LimitGetTime \
+ (tclStubsPtr->tcl_LimitGetTime) /* 533 */
+#define Tcl_LimitGetGranularity \
+ (tclStubsPtr->tcl_LimitGetGranularity) /* 534 */
+#define Tcl_SaveInterpState \
+ (tclStubsPtr->tcl_SaveInterpState) /* 535 */
+#define Tcl_RestoreInterpState \
+ (tclStubsPtr->tcl_RestoreInterpState) /* 536 */
+#define Tcl_DiscardInterpState \
+ (tclStubsPtr->tcl_DiscardInterpState) /* 537 */
+#define Tcl_SetReturnOptions \
+ (tclStubsPtr->tcl_SetReturnOptions) /* 538 */
+#define Tcl_GetReturnOptions \
+ (tclStubsPtr->tcl_GetReturnOptions) /* 539 */
+#define Tcl_IsEnsemble \
+ (tclStubsPtr->tcl_IsEnsemble) /* 540 */
+#define Tcl_CreateEnsemble \
+ (tclStubsPtr->tcl_CreateEnsemble) /* 541 */
+#define Tcl_FindEnsemble \
+ (tclStubsPtr->tcl_FindEnsemble) /* 542 */
+#define Tcl_SetEnsembleSubcommandList \
+ (tclStubsPtr->tcl_SetEnsembleSubcommandList) /* 543 */
+#define Tcl_SetEnsembleMappingDict \
+ (tclStubsPtr->tcl_SetEnsembleMappingDict) /* 544 */
+#define Tcl_SetEnsembleUnknownHandler \
+ (tclStubsPtr->tcl_SetEnsembleUnknownHandler) /* 545 */
+#define Tcl_SetEnsembleFlags \
+ (tclStubsPtr->tcl_SetEnsembleFlags) /* 546 */
+#define Tcl_GetEnsembleSubcommandList \
+ (tclStubsPtr->tcl_GetEnsembleSubcommandList) /* 547 */
+#define Tcl_GetEnsembleMappingDict \
+ (tclStubsPtr->tcl_GetEnsembleMappingDict) /* 548 */
+#define Tcl_GetEnsembleUnknownHandler \
+ (tclStubsPtr->tcl_GetEnsembleUnknownHandler) /* 549 */
+#define Tcl_GetEnsembleFlags \
+ (tclStubsPtr->tcl_GetEnsembleFlags) /* 550 */
+#define Tcl_GetEnsembleNamespace \
+ (tclStubsPtr->tcl_GetEnsembleNamespace) /* 551 */
+#define Tcl_SetTimeProc \
+ (tclStubsPtr->tcl_SetTimeProc) /* 552 */
+#define Tcl_QueryTimeProc \
+ (tclStubsPtr->tcl_QueryTimeProc) /* 553 */
+#define Tcl_ChannelThreadActionProc \
+ (tclStubsPtr->tcl_ChannelThreadActionProc) /* 554 */
+#define Tcl_NewBignumObj \
+ (tclStubsPtr->tcl_NewBignumObj) /* 555 */
+#define Tcl_DbNewBignumObj \
+ (tclStubsPtr->tcl_DbNewBignumObj) /* 556 */
+#define Tcl_SetBignumObj \
+ (tclStubsPtr->tcl_SetBignumObj) /* 557 */
+#define Tcl_GetBignumFromObj \
+ (tclStubsPtr->tcl_GetBignumFromObj) /* 558 */
+#define Tcl_TakeBignumFromObj \
+ (tclStubsPtr->tcl_TakeBignumFromObj) /* 559 */
+#define Tcl_TruncateChannel \
+ (tclStubsPtr->tcl_TruncateChannel) /* 560 */
+#define Tcl_ChannelTruncateProc \
+ (tclStubsPtr->tcl_ChannelTruncateProc) /* 561 */
+#define Tcl_SetChannelErrorInterp \
+ (tclStubsPtr->tcl_SetChannelErrorInterp) /* 562 */
+#define Tcl_GetChannelErrorInterp \
+ (tclStubsPtr->tcl_GetChannelErrorInterp) /* 563 */
+#define Tcl_SetChannelError \
+ (tclStubsPtr->tcl_SetChannelError) /* 564 */
+#define Tcl_GetChannelError \
+ (tclStubsPtr->tcl_GetChannelError) /* 565 */
+#define Tcl_InitBignumFromDouble \
+ (tclStubsPtr->tcl_InitBignumFromDouble) /* 566 */
+#define Tcl_GetNamespaceUnknownHandler \
+ (tclStubsPtr->tcl_GetNamespaceUnknownHandler) /* 567 */
+#define Tcl_SetNamespaceUnknownHandler \
+ (tclStubsPtr->tcl_SetNamespaceUnknownHandler) /* 568 */
+#define Tcl_GetEncodingFromObj \
+ (tclStubsPtr->tcl_GetEncodingFromObj) /* 569 */
+#define Tcl_GetEncodingSearchPath \
+ (tclStubsPtr->tcl_GetEncodingSearchPath) /* 570 */
+#define Tcl_SetEncodingSearchPath \
+ (tclStubsPtr->tcl_SetEncodingSearchPath) /* 571 */
+#define Tcl_GetEncodingNameFromEnvironment \
+ (tclStubsPtr->tcl_GetEncodingNameFromEnvironment) /* 572 */
+#define Tcl_PkgRequireProc \
+ (tclStubsPtr->tcl_PkgRequireProc) /* 573 */
+#define Tcl_AppendObjToErrorInfo \
+ (tclStubsPtr->tcl_AppendObjToErrorInfo) /* 574 */
+#define Tcl_AppendLimitedToObj \
+ (tclStubsPtr->tcl_AppendLimitedToObj) /* 575 */
+#define Tcl_Format \
+ (tclStubsPtr->tcl_Format) /* 576 */
+#define Tcl_AppendFormatToObj \
+ (tclStubsPtr->tcl_AppendFormatToObj) /* 577 */
+#define Tcl_ObjPrintf \
+ (tclStubsPtr->tcl_ObjPrintf) /* 578 */
+#define Tcl_AppendPrintfToObj \
+ (tclStubsPtr->tcl_AppendPrintfToObj) /* 579 */
+#define Tcl_CancelEval \
+ (tclStubsPtr->tcl_CancelEval) /* 580 */
+#define Tcl_Canceled \
+ (tclStubsPtr->tcl_Canceled) /* 581 */
+#define Tcl_CreatePipe \
+ (tclStubsPtr->tcl_CreatePipe) /* 582 */
+#define Tcl_NRCreateCommand \
+ (tclStubsPtr->tcl_NRCreateCommand) /* 583 */
+#define Tcl_NREvalObj \
+ (tclStubsPtr->tcl_NREvalObj) /* 584 */
+#define Tcl_NREvalObjv \
+ (tclStubsPtr->tcl_NREvalObjv) /* 585 */
+#define Tcl_NRCmdSwap \
+ (tclStubsPtr->tcl_NRCmdSwap) /* 586 */
+#define Tcl_NRAddCallback \
+ (tclStubsPtr->tcl_NRAddCallback) /* 587 */
+#define Tcl_NRCallObjProc \
+ (tclStubsPtr->tcl_NRCallObjProc) /* 588 */
+#define Tcl_GetFSDeviceFromStat \
+ (tclStubsPtr->tcl_GetFSDeviceFromStat) /* 589 */
+#define Tcl_GetFSInodeFromStat \
+ (tclStubsPtr->tcl_GetFSInodeFromStat) /* 590 */
+#define Tcl_GetModeFromStat \
+ (tclStubsPtr->tcl_GetModeFromStat) /* 591 */
+#define Tcl_GetLinkCountFromStat \
+ (tclStubsPtr->tcl_GetLinkCountFromStat) /* 592 */
+#define Tcl_GetUserIdFromStat \
+ (tclStubsPtr->tcl_GetUserIdFromStat) /* 593 */
+#define Tcl_GetGroupIdFromStat \
+ (tclStubsPtr->tcl_GetGroupIdFromStat) /* 594 */
+#define Tcl_GetDeviceTypeFromStat \
+ (tclStubsPtr->tcl_GetDeviceTypeFromStat) /* 595 */
+#define Tcl_GetAccessTimeFromStat \
+ (tclStubsPtr->tcl_GetAccessTimeFromStat) /* 596 */
+#define Tcl_GetModificationTimeFromStat \
+ (tclStubsPtr->tcl_GetModificationTimeFromStat) /* 597 */
+#define Tcl_GetChangeTimeFromStat \
+ (tclStubsPtr->tcl_GetChangeTimeFromStat) /* 598 */
+#define Tcl_GetSizeFromStat \
+ (tclStubsPtr->tcl_GetSizeFromStat) /* 599 */
+#define Tcl_GetBlocksFromStat \
+ (tclStubsPtr->tcl_GetBlocksFromStat) /* 600 */
+#define Tcl_GetBlockSizeFromStat \
+ (tclStubsPtr->tcl_GetBlockSizeFromStat) /* 601 */
+#define Tcl_SetEnsembleParameterList \
+ (tclStubsPtr->tcl_SetEnsembleParameterList) /* 602 */
+#define Tcl_GetEnsembleParameterList \
+ (tclStubsPtr->tcl_GetEnsembleParameterList) /* 603 */
+#define TclParseArgsObjv \
+ (tclStubsPtr->tclParseArgsObjv) /* 604 */
+#define Tcl_GetErrorLine \
+ (tclStubsPtr->tcl_GetErrorLine) /* 605 */
+#define Tcl_SetErrorLine \
+ (tclStubsPtr->tcl_SetErrorLine) /* 606 */
+#define Tcl_TransferResult \
+ (tclStubsPtr->tcl_TransferResult) /* 607 */
+#define Tcl_InterpActive \
+ (tclStubsPtr->tcl_InterpActive) /* 608 */
+#define Tcl_BackgroundException \
+ (tclStubsPtr->tcl_BackgroundException) /* 609 */
+#define Tcl_ZlibDeflate \
+ (tclStubsPtr->tcl_ZlibDeflate) /* 610 */
+#define Tcl_ZlibInflate \
+ (tclStubsPtr->tcl_ZlibInflate) /* 611 */
+#define Tcl_ZlibCRC32 \
+ (tclStubsPtr->tcl_ZlibCRC32) /* 612 */
+#define Tcl_ZlibAdler32 \
+ (tclStubsPtr->tcl_ZlibAdler32) /* 613 */
+#define Tcl_ZlibStreamInit \
+ (tclStubsPtr->tcl_ZlibStreamInit) /* 614 */
+#define Tcl_ZlibStreamGetCommandName \
+ (tclStubsPtr->tcl_ZlibStreamGetCommandName) /* 615 */
+#define Tcl_ZlibStreamEof \
+ (tclStubsPtr->tcl_ZlibStreamEof) /* 616 */
+#define Tcl_ZlibStreamChecksum \
+ (tclStubsPtr->tcl_ZlibStreamChecksum) /* 617 */
+#define Tcl_ZlibStreamPut \
+ (tclStubsPtr->tcl_ZlibStreamPut) /* 618 */
+#define Tcl_ZlibStreamGet \
+ (tclStubsPtr->tcl_ZlibStreamGet) /* 619 */
+#define Tcl_ZlibStreamClose \
+ (tclStubsPtr->tcl_ZlibStreamClose) /* 620 */
+#define Tcl_ZlibStreamReset \
+ (tclStubsPtr->tcl_ZlibStreamReset) /* 621 */
+#define Tcl_SetStartupScript \
+ (tclStubsPtr->tcl_SetStartupScript) /* 622 */
+#define Tcl_GetStartupScript \
+ (tclStubsPtr->tcl_GetStartupScript) /* 623 */
+#define Tcl_CloseEx \
+ (tclStubsPtr->tcl_CloseEx) /* 624 */
+#define Tcl_NRExprObj \
+ (tclStubsPtr->tcl_NRExprObj) /* 625 */
+#define Tcl_NRSubstObj \
+ (tclStubsPtr->tcl_NRSubstObj) /* 626 */
+#define Tcl_LoadFile \
+ (tclStubsPtr->tcl_LoadFile) /* 627 */
+#define Tcl_FindSymbol \
+ (tclStubsPtr->tcl_FindSymbol) /* 628 */
+#define Tcl_FSUnloadFile \
+ (tclStubsPtr->tcl_FSUnloadFile) /* 629 */
+#define Tcl_ZlibStreamSetCompressionDictionary \
+ (tclStubsPtr->tcl_ZlibStreamSetCompressionDictionary) /* 630 */
+#define Tcl_OpenTcpServerEx \
+ (tclStubsPtr->tcl_OpenTcpServerEx) /* 631 */
+#define TclZipfs_Mount \
+ (tclStubsPtr->tclZipfs_Mount) /* 632 */
+#define TclZipfs_Unmount \
+ (tclStubsPtr->tclZipfs_Unmount) /* 633 */
+#define TclZipfs_TclLibrary \
+ (tclStubsPtr->tclZipfs_TclLibrary) /* 634 */
+#define TclZipfs_MountBuffer \
+ (tclStubsPtr->tclZipfs_MountBuffer) /* 635 */
+#define Tcl_FreeInternalRep \
+ (tclStubsPtr->tcl_FreeInternalRep) /* 636 */
+#define Tcl_InitStringRep \
+ (tclStubsPtr->tcl_InitStringRep) /* 637 */
+#define Tcl_FetchInternalRep \
+ (tclStubsPtr->tcl_FetchInternalRep) /* 638 */
+#define Tcl_StoreInternalRep \
+ (tclStubsPtr->tcl_StoreInternalRep) /* 639 */
+#define Tcl_HasStringRep \
+ (tclStubsPtr->tcl_HasStringRep) /* 640 */
+#define Tcl_IncrRefCount \
+ (tclStubsPtr->tcl_IncrRefCount) /* 641 */
+#define Tcl_DecrRefCount \
+ (tclStubsPtr->tcl_DecrRefCount) /* 642 */
+#define Tcl_IsShared \
+ (tclStubsPtr->tcl_IsShared) /* 643 */
+#define Tcl_LinkArray \
+ (tclStubsPtr->tcl_LinkArray) /* 644 */
+#define Tcl_GetIntForIndex \
+ (tclStubsPtr->tcl_GetIntForIndex) /* 645 */
+#define Tcl_UtfToUniChar \
+ (tclStubsPtr->tcl_UtfToUniChar) /* 646 */
+#define Tcl_UniCharToUtfDString \
+ (tclStubsPtr->tcl_UniCharToUtfDString) /* 647 */
+#define Tcl_UtfToUniCharDString \
+ (tclStubsPtr->tcl_UtfToUniCharDString) /* 648 */
+#define TclGetBytesFromObj \
+ (tclStubsPtr->tclGetBytesFromObj) /* 649 */
+#define Tcl_GetBytesFromObj \
+ (tclStubsPtr->tcl_GetBytesFromObj) /* 650 */
+#define Tcl_GetStringFromObj \
+ (tclStubsPtr->tcl_GetStringFromObj) /* 651 */
+#define Tcl_GetUnicodeFromObj \
+ (tclStubsPtr->tcl_GetUnicodeFromObj) /* 652 */
+#define Tcl_GetSizeIntFromObj \
+ (tclStubsPtr->tcl_GetSizeIntFromObj) /* 653 */
+#define Tcl_UtfCharComplete \
+ (tclStubsPtr->tcl_UtfCharComplete) /* 654 */
+#define Tcl_UtfNext \
+ (tclStubsPtr->tcl_UtfNext) /* 655 */
+#define Tcl_UtfPrev \
+ (tclStubsPtr->tcl_UtfPrev) /* 656 */
+#define Tcl_FSTildeExpand \
+ (tclStubsPtr->tcl_FSTildeExpand) /* 657 */
+#define Tcl_ExternalToUtfDStringEx \
+ (tclStubsPtr->tcl_ExternalToUtfDStringEx) /* 658 */
+#define Tcl_UtfToExternalDStringEx \
+ (tclStubsPtr->tcl_UtfToExternalDStringEx) /* 659 */
+#define Tcl_AsyncMarkFromSignal \
+ (tclStubsPtr->tcl_AsyncMarkFromSignal) /* 660 */
+#define Tcl_ListObjGetElements \
+ (tclStubsPtr->tcl_ListObjGetElements) /* 661 */
+#define Tcl_ListObjLength \
+ (tclStubsPtr->tcl_ListObjLength) /* 662 */
+#define Tcl_DictObjSize \
+ (tclStubsPtr->tcl_DictObjSize) /* 663 */
+#define Tcl_SplitList \
+ (tclStubsPtr->tcl_SplitList) /* 664 */
+#define Tcl_SplitPath \
+ (tclStubsPtr->tcl_SplitPath) /* 665 */
+#define Tcl_FSSplitPath \
+ (tclStubsPtr->tcl_FSSplitPath) /* 666 */
+#define Tcl_ParseArgsObjv \
+ (tclStubsPtr->tcl_ParseArgsObjv) /* 667 */
+#define Tcl_UniCharLen \
+ (tclStubsPtr->tcl_UniCharLen) /* 668 */
+#define Tcl_NumUtfChars \
+ (tclStubsPtr->tcl_NumUtfChars) /* 669 */
+#define Tcl_GetCharLength \
+ (tclStubsPtr->tcl_GetCharLength) /* 670 */
+#define Tcl_UtfAtIndex \
+ (tclStubsPtr->tcl_UtfAtIndex) /* 671 */
+#define Tcl_GetRange \
+ (tclStubsPtr->tcl_GetRange) /* 672 */
+#define Tcl_GetUniChar \
+ (tclStubsPtr->tcl_GetUniChar) /* 673 */
+#define Tcl_GetBool \
+ (tclStubsPtr->tcl_GetBool) /* 674 */
+#define Tcl_GetBoolFromObj \
+ (tclStubsPtr->tcl_GetBoolFromObj) /* 675 */
+#define Tcl_CreateObjCommand2 \
+ (tclStubsPtr->tcl_CreateObjCommand2) /* 676 */
+#define Tcl_CreateObjTrace2 \
+ (tclStubsPtr->tcl_CreateObjTrace2) /* 677 */
+#define Tcl_NRCreateCommand2 \
+ (tclStubsPtr->tcl_NRCreateCommand2) /* 678 */
+#define Tcl_NRCallObjProc2 \
+ (tclStubsPtr->tcl_NRCallObjProc2) /* 679 */
+#define Tcl_GetNumberFromObj \
+ (tclStubsPtr->tcl_GetNumberFromObj) /* 680 */
+#define Tcl_GetNumber \
+ (tclStubsPtr->tcl_GetNumber) /* 681 */
+#define Tcl_RemoveChannelMode \
+ (tclStubsPtr->tcl_RemoveChannelMode) /* 682 */
+#define Tcl_GetEncodingNulLength \
+ (tclStubsPtr->tcl_GetEncodingNulLength) /* 683 */
+#define Tcl_GetWideUIntFromObj \
+ (tclStubsPtr->tcl_GetWideUIntFromObj) /* 684 */
+#define Tcl_DStringToObj \
+ (tclStubsPtr->tcl_DStringToObj) /* 685 */
+#define Tcl_UtfNcmp \
+ (tclStubsPtr->tcl_UtfNcmp) /* 686 */
+#define Tcl_UtfNcasecmp \
+ (tclStubsPtr->tcl_UtfNcasecmp) /* 687 */
+#define Tcl_NewWideUIntObj \
+ (tclStubsPtr->tcl_NewWideUIntObj) /* 688 */
+#define Tcl_SetWideUIntObj \
+ (tclStubsPtr->tcl_SetWideUIntObj) /* 689 */
+#define TclUnusedStubEntry \
+ (tclStubsPtr->tclUnusedStubEntry) /* 690 */
+
+#endif /* defined(USE_TCL_STUBS) */
+
+/* !END!: Do not edit above this line. */
+
+#undef TclUnusedStubEntry
+
+#ifdef _WIN32
+# undef Tcl_CreateFileHandler
+# undef Tcl_DeleteFileHandler
+# undef Tcl_GetOpenFile
+#endif
+
+#undef TCL_STORAGE_CLASS
+#define TCL_STORAGE_CLASS DLLIMPORT
+
+#define Tcl_PkgPresent(interp, name, version, exact) \
+ Tcl_PkgPresentEx(interp, name, version, exact, NULL)
+#define Tcl_PkgProvide(interp, name, version) \
+ Tcl_PkgProvideEx(interp, name, version, NULL)
+#define Tcl_PkgRequire(interp, name, version, exact) \
+ Tcl_PkgRequireEx(interp, name, version, exact, NULL)
+#define Tcl_GetIndexFromObj(interp, objPtr, tablePtr, msg, flags, indexPtr) \
+ Tcl_GetIndexFromObjStruct(interp, objPtr, tablePtr, \
+ sizeof(char *), msg, flags, indexPtr)
+#define Tcl_NewBooleanObj(intValue) \
+ Tcl_NewWideIntObj((intValue)!=0)
+#define Tcl_DbNewBooleanObj(intValue, file, line) \
+ Tcl_DbNewWideIntObj((intValue)!=0, file, line)
+#define Tcl_SetBooleanObj(objPtr, intValue) \
+ Tcl_SetWideIntObj(objPtr, (intValue)!=0)
+#define Tcl_SetVar(interp, varName, newValue, flags) \
+ Tcl_SetVar2(interp, varName, NULL, newValue, flags)
+#define Tcl_UnsetVar(interp, varName, flags) \
+ Tcl_UnsetVar2(interp, varName, NULL, flags)
+#define Tcl_GetVar(interp, varName, flags) \
+ Tcl_GetVar2(interp, varName, NULL, flags)
+#define Tcl_TraceVar(interp, varName, flags, proc, clientData) \
+ Tcl_TraceVar2(interp, varName, NULL, flags, proc, clientData)
+#define Tcl_UntraceVar(interp, varName, flags, proc, clientData) \
+ Tcl_UntraceVar2(interp, varName, NULL, flags, proc, clientData)
+#define Tcl_VarTraceInfo(interp, varName, flags, proc, prevClientData) \
+ Tcl_VarTraceInfo2(interp, varName, NULL, flags, proc, prevClientData)
+#define Tcl_UpVar(interp, frameName, varName, localName, flags) \
+ Tcl_UpVar2(interp, frameName, varName, NULL, localName, flags)
+#define Tcl_AddErrorInfo(interp, message) \
+ Tcl_AppendObjToErrorInfo(interp, Tcl_NewStringObj(message, -1))
+#define Tcl_AddObjErrorInfo(interp, message, length) \
+ Tcl_AppendObjToErrorInfo(interp, Tcl_NewStringObj(message, length))
+#define Tcl_Eval(interp, objPtr) \
+ Tcl_EvalEx(interp, objPtr, TCL_INDEX_NONE, 0)
+#define Tcl_GlobalEval(interp, objPtr) \
+ Tcl_EvalEx(interp, objPtr, TCL_INDEX_NONE, TCL_EVAL_GLOBAL)
+#define Tcl_GetStringResult(interp) Tcl_GetString(Tcl_GetObjResult(interp))
+#define Tcl_SetResult(interp, result, freeProc) \
+ do { \
+ const char *__result = result; \
+ Tcl_FreeProc *__freeProc = freeProc; \
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(__result, -1)); \
+ if (__result != NULL && __freeProc != NULL && __freeProc != TCL_VOLATILE) { \
+ if (__freeProc == TCL_DYNAMIC) { \
+ Tcl_Free((void *)__result); \
+ } else { \
+ (*__freeProc)((void *)__result); \
+ } \
+ } \
+ } while(0)
+
+#if defined(USE_TCL_STUBS)
+# if defined(_WIN32) && defined(_WIN64) && TCL_MAJOR_VERSION < 9
+# undef Tcl_GetTime
+/* Handle Win64 tk.dll being loaded in Cygwin64 (only needed for Tcl 8). */
+# define Tcl_GetTime(t) \
+ do { \
+ struct { \
+ Tcl_Time now; \
+ long long reserved; \
+ } _t; \
+ _t.reserved = -1; \
+ tclStubsPtr->tcl_GetTime((&_t.now)); \
+ if (_t.reserved != -1) { \
+ _t.now.usec = (long) _t.reserved; \
+ } \
+ *(t) = _t.now; \
+ } while (0)
+# endif
+# if defined(__CYGWIN__) && defined(TCL_WIDE_INT_IS_LONG)
+/* On Cygwin64, long is 64-bit while on Win64 long is 32-bit. Therefore
+ * we have to make sure that all stub entries on Cygwin64 follow the
+ * Win64 signature. Cygwin64 stubbed extensions cannot use those stub
+ * entries any more, they should use the 64-bit alternatives where
+ * possible. Tcl 9 must find a better solution, but that cannot be done
+ * without introducing a binary incompatibility.
+ */
+# undef Tcl_GetLongFromObj
+# undef Tcl_ExprLong
+# undef Tcl_ExprLongObj
+# define Tcl_GetLongFromObj ((int(*)(Tcl_Interp*,Tcl_Obj*,long*))Tcl_GetWideIntFromObj)
+# define Tcl_ExprLong TclExprLong
+ static inline int TclExprLong(Tcl_Interp *interp, const char *string, long *ptr){
+ int intValue;
+ int result = tclStubsPtr->tcl_ExprLong(interp, string, (long *)&intValue);
+ if (result == TCL_OK) *ptr = (long)intValue;
+ return result;
+ }
+# define Tcl_ExprLongObj TclExprLongObj
+ static inline int TclExprLongObj(Tcl_Interp *interp, Tcl_Obj *obj, long *ptr){
+ int intValue;
+ int result = tclStubsPtr->tcl_ExprLongObj(interp, obj, (long *)&intValue);
+ if (result == TCL_OK) *ptr = (long)intValue;
+ return result;
+ }
+# endif
+#endif
+
+#undef Tcl_GetString
+#undef Tcl_GetUnicode
+#undef Tcl_CreateHashEntry
+#define Tcl_GetString(objPtr) \
+ Tcl_GetStringFromObj(objPtr, (Tcl_Size *)NULL)
+#define Tcl_GetUnicode(objPtr) \
+ Tcl_GetUnicodeFromObj(objPtr, (Tcl_Size *)NULL)
+#undef Tcl_GetIndexFromObjStruct
+#undef Tcl_GetBooleanFromObj
+#undef Tcl_GetBoolean
+#if !defined(TCLBOOLWARNING)
+#if !defined(__cplusplus) && !defined(BUILD_tcl) && !defined(BUILD_tk) && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
+# define TCLBOOLWARNING(boolPtr) (void)(sizeof(struct {_Static_assert(sizeof(*(boolPtr)) <= sizeof(int), "sizeof(boolPtr) too large");int dummy;})),
+#elif defined(__GNUC__) && !defined(__STRICT_ANSI__)
+ /* If this gives: "error: size of array ‘_bool_Var’ is negative", it means that sizeof(*boolPtr)>sizeof(int), which is not allowed */
+# define TCLBOOLWARNING(boolPtr) ({__attribute__((unused)) char _bool_Var[sizeof(*(boolPtr)) <= sizeof(int) ? 1 : -1];}),
+#else
+# define TCLBOOLWARNING(boolPtr)
+#endif
+#endif /* !TCLBOOLWARNING */
+#if defined(USE_TCL_STUBS)
+#define Tcl_GetIndexFromObjStruct(interp, objPtr, tablePtr, offset, msg, flags, indexPtr) \
+ (tclStubsPtr->tcl_GetIndexFromObjStruct((interp), (objPtr), (tablePtr), (offset), (msg), \
+ (flags)|(int)(sizeof(*(indexPtr))<<1), (indexPtr)))
+#define Tcl_GetBooleanFromObj(interp, objPtr, boolPtr) \
+ ((sizeof(*(boolPtr)) == sizeof(int) && (TCL_MAJOR_VERSION == 8)) ? tclStubsPtr->tcl_GetBooleanFromObj(interp, objPtr, (int *)(boolPtr)) : \
+ ((sizeof(*(boolPtr)) <= sizeof(int)) ? Tcl_GetBoolFromObj(interp, objPtr, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)) : \
+ (TCLBOOLWARNING(boolPtr)Tcl_Panic("sizeof(%s) must be <= sizeof(int)", & #boolPtr [1]),TCL_ERROR)))
+#define Tcl_GetBoolean(interp, src, boolPtr) \
+ ((sizeof(*(boolPtr)) == sizeof(int) && (TCL_MAJOR_VERSION == 8)) ? tclStubsPtr->tcl_GetBoolean(interp, src, (int *)(boolPtr)) : \
+ ((sizeof(*(boolPtr)) <= sizeof(int)) ? Tcl_GetBool(interp, src, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)) : \
+ (TCLBOOLWARNING(boolPtr)Tcl_Panic("sizeof(%s) must be <= sizeof(int)", & #boolPtr [1]),TCL_ERROR)))
+#else
+#define Tcl_GetIndexFromObjStruct(interp, objPtr, tablePtr, offset, msg, flags, indexPtr) \
+ ((Tcl_GetIndexFromObjStruct)((interp), (objPtr), (tablePtr), (offset), (msg), \
+ (flags)|(int)(sizeof(*(indexPtr))<<1), (indexPtr)))
+#define Tcl_GetBooleanFromObj(interp, objPtr, boolPtr) \
+ ((sizeof(*(boolPtr)) == sizeof(int) && (TCL_MAJOR_VERSION == 8)) ? Tcl_GetBooleanFromObj(interp, objPtr, (int *)(boolPtr)) : \
+ ((sizeof(*(boolPtr)) <= sizeof(int)) ? Tcl_GetBoolFromObj(interp, objPtr, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)) : \
+ (TCLBOOLWARNING(boolPtr)Tcl_Panic("sizeof(%s) must be <= sizeof(int)", & #boolPtr [1]),TCL_ERROR)))
+#define Tcl_GetBoolean(interp, src, boolPtr) \
+ ((sizeof(*(boolPtr)) == sizeof(int) && (TCL_MAJOR_VERSION == 8)) ? Tcl_GetBoolean(interp, src, (int *)(boolPtr)) : \
+ ((sizeof(*(boolPtr)) <= sizeof(int)) ? Tcl_GetBool(interp, src, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)) : \
+ (TCLBOOLWARNING(boolPtr)Tcl_Panic("sizeof(%s) must be <= sizeof(int)", & #boolPtr [1]),TCL_ERROR)))
+#endif
+
+#ifdef TCL_MEM_DEBUG
+# undef Tcl_Alloc
+# define Tcl_Alloc(x) \
+ (Tcl_DbCkalloc((x), __FILE__, __LINE__))
+# undef Tcl_Free
+# define Tcl_Free(x) \
+ Tcl_DbCkfree((x), __FILE__, __LINE__)
+# undef Tcl_Realloc
+# define Tcl_Realloc(x,y) \
+ (Tcl_DbCkrealloc((x), (y), __FILE__, __LINE__))
+# undef Tcl_AttemptAlloc
+# define Tcl_AttemptAlloc(x) \
+ (Tcl_AttemptDbCkalloc((x), __FILE__, __LINE__))
+# undef Tcl_AttemptRealloc
+# define Tcl_AttemptRealloc(x,y) \
+ (Tcl_AttemptDbCkrealloc((x), (y), __FILE__, __LINE__))
+#endif /* !TCL_MEM_DEBUG */
+
+#define Tcl_NewLongObj(value) Tcl_NewWideIntObj((long)(value))
+#define Tcl_NewIntObj(value) Tcl_NewWideIntObj((int)(value))
+#define Tcl_DbNewLongObj(value, file, line) Tcl_DbNewWideIntObj((long)(value), file, line)
+#define Tcl_SetIntObj(objPtr, value) Tcl_SetWideIntObj((objPtr), (int)(value))
+#define Tcl_SetLongObj(objPtr, value) Tcl_SetWideIntObj((objPtr), (long)(value))
+#define Tcl_BackgroundError(interp) Tcl_BackgroundException((interp), TCL_ERROR)
+#define Tcl_StringMatch(str, pattern) Tcl_StringCaseMatch((str), (pattern), 0)
+
+#if TCL_UTF_MAX < 4
+# undef Tcl_UniCharToUtfDString
+# define Tcl_UniCharToUtfDString Tcl_Char16ToUtfDString
+# undef Tcl_UtfToUniCharDString
+# define Tcl_UtfToUniCharDString Tcl_UtfToChar16DString
+# undef Tcl_UtfToUniChar
+# define Tcl_UtfToUniChar Tcl_UtfToChar16
+# undef Tcl_UniCharLen
+# define Tcl_UniCharLen Tcl_Char16Len
+# undef Tcl_UniCharToUtf
+# if defined(USE_TCL_STUBS)
+# define Tcl_UniCharToUtf(c, p) \
+ (tclStubsPtr->tcl_UniCharToUtf((c)|TCL_COMBINE, (p)))
+# else
+# define Tcl_UniCharToUtf(c, p) \
+ ((Tcl_UniCharToUtf)((c)|TCL_COMBINE, (p)))
+# endif
+# undef Tcl_NumUtfChars
+# define Tcl_NumUtfChars TclNumUtfChars
+# undef Tcl_GetCharLength
+# define Tcl_GetCharLength TclGetCharLength
+# undef Tcl_UtfAtIndex
+# define Tcl_UtfAtIndex TclUtfAtIndex
+# undef Tcl_GetRange
+# define Tcl_GetRange TclGetRange
+# undef Tcl_GetUniChar
+# define Tcl_GetUniChar TclGetUniChar
+# undef Tcl_UtfNcmp
+# define Tcl_UtfNcmp TclUtfNcmp
+# undef Tcl_UtfNcasecmp
+# define Tcl_UtfNcasecmp TclUtfNcasecmp
+#endif
+#if TCL_MAJOR_VERSION > 8
+# if defined(USE_TCL_STUBS)
+# define Tcl_WCharToUtfDString (sizeof(wchar_t) != sizeof(short) \
+ ? (char *(*)(const wchar_t *, Tcl_Size, Tcl_DString *))tclStubsPtr->tcl_UniCharToUtfDString \
+ : (char *(*)(const wchar_t *, Tcl_Size, Tcl_DString *))Tcl_Char16ToUtfDString)
+# define Tcl_UtfToWCharDString (sizeof(wchar_t) != sizeof(short) \
+ ? (wchar_t *(*)(const char *, Tcl_Size, Tcl_DString *))tclStubsPtr->tcl_UtfToUniCharDString \
+ : (wchar_t *(*)(const char *, Tcl_Size, Tcl_DString *))Tcl_UtfToChar16DString)
+# define Tcl_UtfToWChar (sizeof(wchar_t) != sizeof(short) \
+ ? (Tcl_Size (*)(const char *, wchar_t *))tclStubsPtr->tcl_UtfToUniChar \
+ : (Tcl_Size (*)(const char *, wchar_t *))Tcl_UtfToChar16)
+# define Tcl_WCharLen (sizeof(wchar_t) != sizeof(short) \
+ ? (Tcl_Size (*)(wchar_t *))tclStubsPtr->tcl_UniCharLen \
+ : (Tcl_Size (*)(wchar_t *))Tcl_Char16Len)
+# else
+# define Tcl_WCharToUtfDString (sizeof(wchar_t) != sizeof(short) \
+ ? (char *(*)(const wchar_t *, Tcl_Size, Tcl_DString *))Tcl_UniCharToUtfDString \
+ : (char *(*)(const wchar_t *, Tcl_Size, Tcl_DString *))Tcl_Char16ToUtfDString)
+# define Tcl_UtfToWCharDString (sizeof(wchar_t) != sizeof(short) \
+ ? (wchar_t *(*)(const char *, Tcl_Size, Tcl_DString *))Tcl_UtfToUniCharDString \
+ : (wchar_t *(*)(const char *, Tcl_Size, Tcl_DString *))Tcl_UtfToChar16DString)
+# define Tcl_UtfToWChar (sizeof(wchar_t) != sizeof(short) \
+ ? (Tcl_Size (*)(const char *, wchar_t *))Tcl_UtfToUniChar \
+ : (Tcl_Size (*)(const char *, wchar_t *))Tcl_UtfToChar16)
+# define Tcl_WCharLen (sizeof(wchar_t) != sizeof(short) \
+ ? (Tcl_Size (*)(wchar_t *))Tcl_UniCharLen \
+ : (Tcl_Size (*)(wchar_t *))Tcl_Char16Len)
+# endif
+#endif
+
+/*
+ * Deprecated Tcl procedures:
+ */
+
+#define Tcl_EvalObj(interp, objPtr) \
+ Tcl_EvalObjEx(interp, objPtr, 0)
+#define Tcl_GlobalEvalObj(interp, objPtr) \
+ Tcl_EvalObjEx(interp, objPtr, TCL_EVAL_GLOBAL)
+
+#if TCL_MAJOR_VERSION > 8
+# undef Tcl_Close
+# define Tcl_Close(interp, chan) Tcl_CloseEx(interp, chan, 0)
+#endif
+
+#undef TclUtfCharComplete
+#undef TclUtfNext
+#undef TclUtfPrev
+#ifndef TCL_NO_DEPRECATED
+# define Tcl_CreateSlave Tcl_CreateChild
+# define Tcl_GetSlave Tcl_GetChild
+# define Tcl_GetMaster Tcl_GetParent
+#endif
+
+/* Protect those 11 functions, make them useless through the stub table */
+#undef TclGetStringFromObj
+#undef TclGetBytesFromObj
+#undef TclGetUnicodeFromObj
+#undef TclListObjGetElements
+#undef TclListObjLength
+#undef TclDictObjSize
+#undef TclSplitList
+#undef TclSplitPath
+#undef TclFSSplitPath
+#undef TclParseArgsObjv
+#undef TclGetAliasObj
+
+#if TCL_MAJOR_VERSION < 9
+ /* TIP #627 */
+# undef Tcl_CreateObjCommand2
+# define Tcl_CreateObjCommand2 Tcl_CreateObjCommand
+# undef Tcl_CreateObjTrace2
+# define Tcl_CreateObjTrace2 Tcl_CreateObjTrace
+# undef Tcl_NRCreateCommand2
+# define Tcl_NRCreateCommand2 Tcl_NRCreateCommand
+# undef Tcl_NRCallObjProc2
+# define Tcl_NRCallObjProc2 Tcl_NRCallObjProc
+ /* TIP #660 */
+# undef Tcl_GetSizeIntFromObj
+# define Tcl_GetSizeIntFromObj Tcl_GetIntFromObj
+
+# undef Tcl_GetBytesFromObj
+# define Tcl_GetBytesFromObj(interp, objPtr, sizePtr) \
+ tclStubsPtr->tclGetBytesFromObj((interp), (objPtr), (sizePtr))
+# undef Tcl_GetStringFromObj
+# define Tcl_GetStringFromObj(objPtr, sizePtr) \
+ tclStubsPtr->tclGetStringFromObj((objPtr), (sizePtr))
+# undef Tcl_GetUnicodeFromObj
+# define Tcl_GetUnicodeFromObj(objPtr, sizePtr) \
+ tclStubsPtr->tclGetUnicodeFromObj((objPtr), (sizePtr))
+# undef Tcl_ListObjGetElements
+# define Tcl_ListObjGetElements(interp, listPtr, objcPtr, objvPtr) \
+ tclStubsPtr->tclListObjGetElements((interp), (listPtr), (objcPtr), (objvPtr))
+# undef Tcl_ListObjLength
+# define Tcl_ListObjLength(interp, listPtr, lengthPtr) \
+ tclStubsPtr->tclListObjLength((interp), (listPtr), (lengthPtr))
+# undef Tcl_DictObjSize
+# define Tcl_DictObjSize(interp, dictPtr, sizePtr) \
+ tclStubsPtr->tclDictObjSize((interp), (dictPtr), (sizePtr))
+# undef Tcl_SplitList
+# define Tcl_SplitList(interp, listStr, argcPtr, argvPtr) \
+ tclStubsPtr->tclSplitList((interp), (listStr), (argcPtr), (argvPtr))
+# undef Tcl_SplitPath
+# define Tcl_SplitPath(path, argcPtr, argvPtr) \
+ tclStubsPtr->tclSplitPath((path), (argcPtr), (argvPtr))
+# undef Tcl_FSSplitPath
+# define Tcl_FSSplitPath(pathPtr, lenPtr) \
+ tclStubsPtr->tclFSSplitPath((pathPtr), (lenPtr))
+# undef Tcl_ParseArgsObjv
+# define Tcl_ParseArgsObjv(interp, argTable, objcPtr, objv, remObjv) \
+ tclStubsPtr->tclParseArgsObjv((interp), (argTable), (objcPtr), (objv), (remObjv))
+# undef Tcl_GetAliasObj
+# define Tcl_GetAliasObj(interp, childCmd, targetInterpPtr, targetCmdPtr, objcPtr, objv) \
+ tclStubsPtr->tclGetAliasObj((interp), (childCmd), (targetInterpPtr), (targetCmdPtr), (objcPtr), (objv))
+# undef Tcl_OpenTcpServerEx
+# undef TclZipfs_Mount
+# undef TclZipfs_Unmount
+# undef TclZipfs_TclLibrary
+# undef TclZipfs_MountBuffer
+# undef Tcl_FreeInternalRep
+# undef Tcl_InitStringRep
+# undef Tcl_FetchInternalRep
+# undef Tcl_StoreInternalRep
+# undef Tcl_HasStringRep
+# undef Tcl_LinkArray
+# undef Tcl_GetIntForIndex
+# undef Tcl_FSTildeExpand
+# undef Tcl_ExternalToUtfDStringEx
+# undef Tcl_UtfToExternalDStringEx
+# undef Tcl_AsyncMarkFromSignal
+# undef Tcl_GetBool
+# undef Tcl_GetBoolFromObj
+# undef Tcl_GetNumberFromObj
+# undef Tcl_GetNumber
+# undef Tcl_RemoveChannelMode
+# undef Tcl_GetEncodingNulLength
+# undef Tcl_GetWideUIntFromObj
+# undef Tcl_DStringToObj
+# undef Tcl_NewWideUIntObj
+# undef Tcl_SetWideUIntObj
+#elif defined(TCL_8_API)
+# undef Tcl_GetByteArrayFromObj
+# undef Tcl_GetBytesFromObj
+# undef Tcl_GetStringFromObj
+# undef Tcl_GetUnicodeFromObj
+# undef Tcl_ListObjGetElements
+# undef Tcl_ListObjLength
+# undef Tcl_DictObjSize
+# undef Tcl_SplitList
+# undef Tcl_SplitPath
+# undef Tcl_FSSplitPath
+# undef Tcl_ParseArgsObjv
+# undef Tcl_GetAliasObj
+# if !defined(USE_TCL_STUBS)
+# define Tcl_GetByteArrayFromObj(objPtr, sizePtr) (sizeof(*(sizePtr)) <= sizeof(int) ? \
+ TclGetBytesFromObj(NULL, (objPtr), (sizePtr)) : \
+ (Tcl_GetBytesFromObj)(NULL, (objPtr), (Tcl_Size *)(void *)(sizePtr)))
+# define Tcl_GetBytesFromObj(interp, objPtr, sizePtr) (sizeof(*(sizePtr)) <= sizeof(int) ? \
+ TclGetBytesFromObj((interp), (objPtr), (sizePtr)) : \
+ (Tcl_GetBytesFromObj)((interp), (objPtr), (Tcl_Size *)(void *)(sizePtr)))
+# define Tcl_GetStringFromObj(objPtr, sizePtr) (sizeof(*(sizePtr)) <= sizeof(int) ? \
+ (TclGetStringFromObj)((objPtr), (sizePtr)) : \
+ (Tcl_GetStringFromObj)((objPtr), (Tcl_Size *)(void *)(sizePtr)))
+# define Tcl_GetUnicodeFromObj(objPtr, sizePtr) (sizeof(*(sizePtr)) <= sizeof(int) ? \
+ TclGetUnicodeFromObj((objPtr), (sizePtr)) : \
+ (Tcl_GetUnicodeFromObj)((objPtr), (Tcl_Size *)(void *)(sizePtr)))
+# define Tcl_ListObjGetElements(interp, listPtr, objcPtr, objvPtr) (sizeof(*(objcPtr)) <= sizeof(int) ? \
+ (TclListObjGetElements)((interp), (listPtr), (objcPtr), (objvPtr)) : \
+ (Tcl_ListObjGetElements)((interp), (listPtr), (Tcl_Size *)(void *)(objcPtr), (objvPtr)))
+# define Tcl_ListObjLength(interp, listPtr, lengthPtr) (sizeof(*(lengthPtr)) <= sizeof(int) ? \
+ (TclListObjLength)((interp), (listPtr), (lengthPtr)) : \
+ (Tcl_ListObjLength)((interp), (listPtr), (Tcl_Size *)(void *)(lengthPtr)))
+# define Tcl_DictObjSize(interp, dictPtr, sizePtr) (sizeof(*(sizePtr)) <= sizeof(int) ? \
+ TclDictObjSize((interp), (dictPtr), (sizePtr)) : \
+ (Tcl_DictObjSize)((interp), (dictPtr), (Tcl_Size *)(void *)(sizePtr)))
+# define Tcl_SplitList(interp, listStr, argcPtr, argvPtr) (sizeof(*(argcPtr)) <= sizeof(int) ? \
+ TclSplitList((interp), (listStr), (argcPtr), (argvPtr)) : \
+ (Tcl_SplitList)((interp), (listStr), (Tcl_Size *)(void *)(argcPtr), (argvPtr)))
+# define Tcl_SplitPath(path, argcPtr, argvPtr) (sizeof(*(argcPtr)) <= sizeof(int) ? \
+ TclSplitPath((path), (argcPtr), (argvPtr)) : \
+ (Tcl_SplitPath)((path), (Tcl_Size *)(void *)(argcPtr), (argvPtr)))
+# define Tcl_FSSplitPath(pathPtr, lenPtr) (sizeof(*(lenPtr)) <= sizeof(int) ? \
+ TclFSSplitPath((pathPtr), (lenPtr)) : \
+ (Tcl_FSSplitPath)((pathPtr), (Tcl_Size *)(void *)(lenPtr)))
+# define Tcl_ParseArgsObjv(interp, argTable, objcPtr, objv, remObjv) (sizeof(*(objcPtr)) <= sizeof(int) ? \
+ TclParseArgsObjv((interp), (argTable), (objcPtr), (objv), (remObjv)) : \
+ (Tcl_ParseArgsObjv)((interp), (argTable), (Tcl_Size *)(void *)(objcPtr), (objv), (remObjv)))
+# define Tcl_GetAliasObj(interp, childCmd, targetInterpPtr, targetCmdPtr, objcPtr, objv) (sizeof(*(objcPtr)) <= sizeof(int) ? \
+ TclGetAliasObj((interp), (childCmd), (targetInterpPtr), (targetCmdPtr), (objcPtr), (objv)) : \
+ (Tcl_GetAliasObj)((interp), (childCmd), (targetInterpPtr), (targetCmdPtr), (Tcl_Size *)(void *)(objcPtr), (objv)))
+# elif !defined(BUILD_tcl)
+# define Tcl_GetByteArrayFromObj(objPtr, sizePtr) (sizeof(*(sizePtr)) <= sizeof(int) ? \
+ tclStubsPtr->tclGetBytesFromObj(NULL, (objPtr), (sizePtr)) : \
+ tclStubsPtr->tcl_GetBytesFromObj(NULL, (objPtr), (Tcl_Size *)(void *)(sizePtr)))
+# define Tcl_GetBytesFromObj(interp, objPtr, sizePtr) (sizeof(*(sizePtr)) <= sizeof(int) ? \
+ tclStubsPtr->tclGetBytesFromObj((interp), (objPtr), (sizePtr)) : \
+ tclStubsPtr->tcl_GetBytesFromObj((interp), (objPtr), (Tcl_Size *)(void *)(sizePtr)))
+# define Tcl_GetStringFromObj(objPtr, sizePtr) (sizeof(*(sizePtr)) <= sizeof(int) ? \
+ tclStubsPtr->tclGetStringFromObj((objPtr), (sizePtr)) : \
+ tclStubsPtr->tcl_GetStringFromObj((objPtr), (Tcl_Size *)(void *)(sizePtr)))
+# define Tcl_GetUnicodeFromObj(objPtr, sizePtr) (sizeof(*(sizePtr)) <= sizeof(int) ? \
+ tclStubsPtr->tclGetUnicodeFromObj((objPtr), (sizePtr)) : \
+ tclStubsPtr->tcl_GetUnicodeFromObj((objPtr), (Tcl_Size *)(void *)(sizePtr)))
+# define Tcl_ListObjGetElements(interp, listPtr, objcPtr, objvPtr) (sizeof(*(objcPtr)) <= sizeof(int) ? \
+ tclStubsPtr->tclListObjGetElements((interp), (listPtr), (objcPtr), (objvPtr)) : \
+ tclStubsPtr->tcl_ListObjGetElements((interp), (listPtr), (Tcl_Size *)(void *)(objcPtr), (objvPtr)))
+# define Tcl_ListObjLength(interp, listPtr, lengthPtr) (sizeof(*(lengthPtr)) <= sizeof(int) ? \
+ tclStubsPtr->tclListObjLength((interp), (listPtr), (lengthPtr)) : \
+ tclStubsPtr->tcl_ListObjLength((interp), (listPtr), (Tcl_Size *)(void *)(lengthPtr)))
+# define Tcl_DictObjSize(interp, dictPtr, sizePtr) (sizeof(*(sizePtr)) <= sizeof(int) ? \
+ tclStubsPtr->tclDictObjSize((interp), (dictPtr), (sizePtr)) : \
+ tclStubsPtr->tcl_DictObjSize((interp), (dictPtr), (Tcl_Size *)(void *)(sizePtr)))
+# define Tcl_SplitList(interp, listStr, argcPtr, argvPtr) (sizeof(*(argcPtr)) <= sizeof(int) ? \
+ tclStubsPtr->tclSplitList((interp), (listStr), (argcPtr), (argvPtr)) : \
+ tclStubsPtr->tcl_SplitList((interp), (listStr), (Tcl_Size *)(void *)(argcPtr), (argvPtr)))
+# define Tcl_SplitPath(path, argcPtr, argvPtr) (sizeof(*(argcPtr)) <= sizeof(int) ? \
+ tclStubsPtr->tclSplitPath((path), (argcPtr), (argvPtr)) : \
+ tclStubsPtr->tcl_SplitPath((path), (Tcl_Size *)(void *)(argcPtr), (argvPtr)))
+# define Tcl_FSSplitPath(pathPtr, lenPtr) (sizeof(*(lenPtr)) <= sizeof(int) ? \
+ tclStubsPtr->tclFSSplitPath((pathPtr), (lenPtr)) : \
+ tclStubsPtr->tcl_FSSplitPath((pathPtr), (Tcl_Size *)(void *)(lenPtr)))
+# define Tcl_ParseArgsObjv(interp, argTable, objcPtr, objv, remObjv) (sizeof(*(objcPtr)) <= sizeof(int) ? \
+ tclStubsPtr->tclParseArgsObjv((interp), (argTable), (objcPtr), (objv), (remObjv)) : \
+ tclStubsPtr->tcl_ParseArgsObjv((interp), (argTable), (Tcl_Size *)(void *)(objcPtr), (objv), (remObjv)))
+# define Tcl_GetAliasObj(interp, childCmd, targetInterpPtr, targetCmdPtr, objcPtr, objv) (sizeof(*(objcPtr)) <= sizeof(int) ? \
+ tclStubsPtr->tclGetAliasObj((interp), (childCmd), (targetInterpPtr), (targetCmdPtr), (objcPtr), (objv)) : \
+ tclStubsPtr->tcl_GetAliasObj((interp), (childCmd), (targetInterpPtr), (targetCmdPtr), (Tcl_Size *)(void *)(objcPtr), (objv)))
+# endif /* defined(USE_TCL_STUBS) */
+#else /* !defined(TCL_8_API) */
+# undef Tcl_GetByteArrayFromObj
+# define Tcl_GetByteArrayFromObj(objPtr, sizePtr) \
+ Tcl_GetBytesFromObj(NULL, (objPtr), (sizePtr))
+#endif /* defined(TCL_8_API) */
+
+#endif /* _TCLDECLS */