diff options
Diffstat (limited to 'generic/tclStubInit.c')
| -rw-r--r-- | generic/tclStubInit.c | 923 | 
1 files changed, 717 insertions, 206 deletions
| diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index c25f053..7a84cba 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -1,4 +1,4 @@ -/*  +/*   * tclStubInit.c --   *   *	This file contains the initializers for the Tcl stub vectors. @@ -7,12 +7,16 @@   *   * See the file "license.terms" for information on usage and redistribution   * of this file, and for a DISCLAIMER OF ALL WARRANTIES. - * - * RCS: @(#) $Id: tclStubInit.c,v 1.78 2002/12/06 23:22:59 hobbs Exp $   */  #include "tclInt.h" -#include "tclPort.h" +#include "tommath.h" + +#ifdef __GNUC__ +#pragma GCC dependency "tcl.decls" +#pragma GCC dependency "tclInt.decls" +#pragma GCC dependency "tclTomMath.decls" +#endif  /*   * Remove macros that will interfere with the definitions below. @@ -31,9 +35,263 @@  #undef Tcl_NewStringObj  #undef Tcl_DumpActiveMemory  #undef Tcl_ValidateAllMemory -#if TCL_PRESERVE_BINARY_COMPATABILITY -#   undef Tcl_FindHashEntry -#   undef Tcl_CreateHashEntry +#undef Tcl_FindHashEntry +#undef Tcl_CreateHashEntry +#undef Tcl_Panic +#undef Tcl_FindExecutable +#undef TclpGetPid +#undef TclSockMinimumBuffers +#define TclBackgroundException Tcl_BackgroundException +#undef Tcl_SetIntObj +#undef TclpInetNtoa +#undef TclWinGetServByName +#undef TclWinGetSockOpt +#undef TclWinSetSockOpt + +/* See bug 510001: TclSockMinimumBuffers needs plat imp */ +#ifdef _WIN64 +#   define TclSockMinimumBuffersOld 0 +#else +#define TclSockMinimumBuffersOld sockMinimumBuffersOld +static int TclSockMinimumBuffersOld(int sock, int size) +{ +    return TclSockMinimumBuffers(INT2PTR(sock), size); +} +#endif + +#define TclSetStartupScriptPath setStartupScriptPath +static void TclSetStartupScriptPath(Tcl_Obj *path) +{ +    Tcl_SetStartupScript(path, NULL); +} +#define TclGetStartupScriptPath getStartupScriptPath +static Tcl_Obj *TclGetStartupScriptPath(void) +{ +    return Tcl_GetStartupScript(NULL); +} +#define TclSetStartupScriptFileName setStartupScriptFileName +static void TclSetStartupScriptFileName( +    const char *fileName) +{ +    Tcl_SetStartupScript(Tcl_NewStringObj(fileName,-1), NULL); +} +#define TclGetStartupScriptFileName getStartupScriptFileName +static const char *TclGetStartupScriptFileName(void) +{ +    Tcl_Obj *path = Tcl_GetStartupScript(NULL); +    if (path == NULL) { +	return NULL; +    } +    return Tcl_GetStringFromObj(path, NULL); +} + +#if defined(_WIN32) || defined(__CYGWIN__) +#undef TclWinNToHS +#define TclWinNToHS winNToHS +static unsigned short TclWinNToHS(unsigned short ns) { +	return ntohs(ns); +} +#endif + +#ifdef _WIN32 +#   define TclUnixWaitForFile 0 +#   define TclUnixCopyFile 0 +#   define TclUnixOpenTemporaryFile 0 +#   define TclpReaddir 0 +#   define TclpIsAtty 0 +#elif defined(__CYGWIN__) +#   define TclpIsAtty TclPlatIsAtty +#   define TclWinSetInterfaces (void (*) (int)) doNothing +#   define TclWinAddProcess (void (*) (void *, unsigned int)) doNothing +#   define TclWinFlushDirtyChannels doNothing +#   define TclWinResetInterfaces doNothing + +static Tcl_Encoding winTCharEncoding; + +static int +TclpIsAtty(int fd) +{ +    return isatty(fd); +} + +#define TclWinGetPlatformId winGetPlatformId +static int +TclWinGetPlatformId() +{ +    /* Don't bother to determine the real platform on cygwin, +     * because VER_PLATFORM_WIN32_NT is the only supported platform */ +    return 2; /* VER_PLATFORM_WIN32_NT */; +} + +void *TclWinGetTclInstance() +{ +    void *hInstance = NULL; +    GetModuleHandleExW(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, +	    (const char *)&winTCharEncoding, &hInstance); +    return hInstance; +} + +#define TclWinSetSockOpt winSetSockOpt +static int +TclWinSetSockOpt(SOCKET s, int level, int optname, +	    const char *optval, int optlen) +{ +    return setsockopt((int) s, level, optname, optval, optlen); +} + +#define TclWinGetSockOpt winGetSockOpt +static int +TclWinGetSockOpt(SOCKET s, int level, int optname, +	    char *optval, int *optlen) +{ +    return getsockopt((int) s, level, optname, optval, optlen); +} + +#define TclWinGetServByName winGetServByName +static struct servent * +TclWinGetServByName(const char *name, const char *proto) +{ +    return getservbyname(name, proto); +} + +#define TclWinNoBackslash winNoBackslash +static char * +TclWinNoBackslash(char *path) +{ +    char *p; + +    for (p = path; *p != '\0'; p++) { +	if (*p == '\\') { +	    *p = '/'; +	} +    } +    return path; +} + +int +TclpGetPid(Tcl_Pid pid) +{ +    return (int) (size_t) pid; +} + +static void +doNothing(void) +{ +    /* dummy implementation, no need to do anything */ +} + +char * +Tcl_WinUtfToTChar( +    const char *string, +    int len, +    Tcl_DString *dsPtr) +{ +    if (!winTCharEncoding) { +	winTCharEncoding = Tcl_GetEncoding(0, "unicode"); +    } +    return Tcl_UtfToExternalDString(winTCharEncoding, +	    string, len, dsPtr); +} + +char * +Tcl_WinTCharToUtf( +    const char *string, +    int len, +    Tcl_DString *dsPtr) +{ +    if (!winTCharEncoding) { +	winTCharEncoding = Tcl_GetEncoding(0, "unicode"); +    } +    return Tcl_ExternalToUtfDString(winTCharEncoding, +	    string, len, dsPtr); +} + +#if 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. Tcl 9 must find a better solution, but that cannot be done + * without introducing a binary incompatibility. + */ +#define Tcl_DbNewLongObj ((Tcl_Obj*(*)(long,const char*,int))dbNewLongObj) +static Tcl_Obj *dbNewLongObj( +    int intValue, +    const char *file, +    int line +) { +#ifdef TCL_MEM_DEBUG +    register Tcl_Obj *objPtr; + +    TclDbNewObj(objPtr, file, line); +    objPtr->bytes = NULL; + +    objPtr->internalRep.longValue = (long) intValue; +    objPtr->typePtr = &tclIntType; +    return objPtr; +#else +    return Tcl_NewIntObj(intValue); +#endif +} +#define Tcl_GetLongFromObj (int(*)(Tcl_Interp*,Tcl_Obj*,long*))Tcl_GetIntFromObj +#define Tcl_NewLongObj (Tcl_Obj*(*)(long))Tcl_NewIntObj +#define Tcl_SetLongObj (void(*)(Tcl_Obj*,long))Tcl_SetIntObj +static int exprInt(Tcl_Interp *interp, const char *expr, int *ptr){ +    long longValue; +    int result = Tcl_ExprLong(interp, expr, &longValue); +    if (result == TCL_OK) { +	    if ((longValue >= -(long)(UINT_MAX)) +		    && (longValue <= (long)(UINT_MAX))) { +	    *ptr = (int)longValue; +	} else { +	    Tcl_SetObjResult(interp, Tcl_NewStringObj( +		    "integer value too large to represent as non-long integer", -1)); +	    result = TCL_ERROR; +	} +    } +    return result; +} +#define Tcl_ExprLong (int(*)(Tcl_Interp*,const char*,long*))exprInt +static int exprIntObj(Tcl_Interp *interp, Tcl_Obj*expr, int *ptr){ +    long longValue; +    int result = Tcl_ExprLongObj(interp, expr, &longValue); +    if (result == TCL_OK) { +	    if ((longValue >= -(long)(UINT_MAX)) +		    && (longValue <= (long)(UINT_MAX))) { +	    *ptr = (int)longValue; +	} else { +	    Tcl_SetObjResult(interp, Tcl_NewStringObj( +		    "integer value too large to represent as non-long integer", -1)); +	    result = TCL_ERROR; +	} +    } +    return result; +} +#define Tcl_ExprLongObj (int(*)(Tcl_Interp*,Tcl_Obj*,long*))exprIntObj +static int uniCharNcmp(const Tcl_UniChar *ucs, const Tcl_UniChar *uct, unsigned int n){ +   return Tcl_UniCharNcmp(ucs, uct, (unsigned long)n); +} +#define Tcl_UniCharNcmp (int(*)(const Tcl_UniChar*,const Tcl_UniChar*,unsigned long))uniCharNcmp +static int utfNcmp(const char *s1, const char *s2, unsigned int n){ +   return Tcl_UtfNcmp(s1, s2, (unsigned long)n); +} +#define Tcl_UtfNcmp (int(*)(const char*,const char*,unsigned long))utfNcmp +static int utfNcasecmp(const char *s1, const char *s2, unsigned int n){ +   return Tcl_UtfNcasecmp(s1, s2, (unsigned long)n); +} +#define Tcl_UtfNcasecmp (int(*)(const char*,const char*,unsigned long))utfNcasecmp +static int uniCharNcasecmp(const Tcl_UniChar *ucs, const Tcl_UniChar *uct, unsigned int n){ +   return Tcl_UniCharNcasecmp(ucs, uct, (unsigned long)n); +} +#define Tcl_UniCharNcasecmp (int(*)(const Tcl_UniChar*,const Tcl_UniChar*,unsigned long))uniCharNcasecmp +static int formatInt(char *buffer, int n){ +   return TclFormatInt(buffer, (long)n); +} +#define TclFormatInt (int(*)(char *, long))formatInt + +#endif + +#else /* UNIX and MAC */ +#   define TclpLocaltime_unix TclpLocaltime +#   define TclpGmtime_unix TclpGmtime  #endif  /* @@ -42,146 +300,125 @@   * below should be made in the generic/tcl.decls script.   */ +MODULE_SCOPE const TclStubs tclStubs; +MODULE_SCOPE const TclTomMathStubs tclTomMathStubs; +  /* !BEGIN!: Do not edit below this line. */ -TclIntStubs tclIntStubs = { +static const TclIntStubs tclIntStubs = {      TCL_STUB_MAGIC, -    NULL, -    NULL, /* 0 */ -    TclAccessDeleteProc, /* 1 */ -    TclAccessInsertProc, /* 2 */ +    0, +    0, /* 0 */ +    0, /* 1 */ +    0, /* 2 */      TclAllocateFreeObjects, /* 3 */ -    NULL, /* 4 */ -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ -    TclCleanupChildren, /* 5 */ -#endif /* UNIX */ -#ifdef __WIN32__ +    0, /* 4 */      TclCleanupChildren, /* 5 */ -#endif /* __WIN32__ */ -#ifdef MAC_TCL -    NULL, /* 5 */ -#endif /* MAC_TCL */      TclCleanupCommand, /* 6 */      TclCopyAndCollapse, /* 7 */ -    TclCopyChannel, /* 8 */ -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ -    TclCreatePipeline, /* 9 */ -#endif /* UNIX */ -#ifdef __WIN32__ +    TclCopyChannelOld, /* 8 */      TclCreatePipeline, /* 9 */ -#endif /* __WIN32__ */ -#ifdef MAC_TCL -    NULL, /* 9 */ -#endif /* MAC_TCL */      TclCreateProc, /* 10 */      TclDeleteCompiledLocalVars, /* 11 */      TclDeleteVars, /* 12 */ -    TclDoGlob, /* 13 */ +    0, /* 13 */      TclDumpMemoryInfo, /* 14 */ -    NULL, /* 15 */ +    0, /* 15 */      TclExprFloatError, /* 16 */ -    NULL, /* 17 */ -    NULL, /* 18 */ -    NULL, /* 19 */ -    NULL, /* 20 */ -    NULL, /* 21 */ +    0, /* 17 */ +    0, /* 18 */ +    0, /* 19 */ +    0, /* 20 */ +    0, /* 21 */      TclFindElement, /* 22 */      TclFindProc, /* 23 */      TclFormatInt, /* 24 */      TclFreePackageInfo, /* 25 */ -    NULL, /* 26 */ -    TclGetDate, /* 27 */ +    0, /* 26 */ +    0, /* 27 */      TclpGetDefaultStdChannel, /* 28 */ -    NULL, /* 29 */ -    NULL, /* 30 */ +    0, /* 29 */ +    0, /* 30 */      TclGetExtension, /* 31 */      TclGetFrame, /* 32 */ -    TclGetInterpProc, /* 33 */ +    0, /* 33 */      TclGetIntForIndex, /* 34 */ -    NULL, /* 35 */ -    TclGetLong, /* 36 */ +    0, /* 35 */ +    0, /* 36 */      TclGetLoadedPackages, /* 37 */      TclGetNamespaceForQualName, /* 38 */      TclGetObjInterpProc, /* 39 */      TclGetOpenMode, /* 40 */      TclGetOriginalCommand, /* 41 */      TclpGetUserHome, /* 42 */ -    TclGlobalInvoke, /* 43 */ +    0, /* 43 */      TclGuessPackageName, /* 44 */      TclHideUnsafeCommands, /* 45 */      TclInExit, /* 46 */ -    NULL, /* 47 */ -    NULL, /* 48 */ -    TclIncrVar2, /* 49 */ +    0, /* 47 */ +    0, /* 48 */ +    0, /* 49 */      TclInitCompiledLocals, /* 50 */      TclInterpInit, /* 51 */ -    TclInvoke, /* 52 */ +    0, /* 52 */      TclInvokeObjectCommand, /* 53 */      TclInvokeStringCommand, /* 54 */      TclIsProc, /* 55 */ -    NULL, /* 56 */ -    NULL, /* 57 */ +    0, /* 56 */ +    0, /* 57 */      TclLookupVar, /* 58 */ -    NULL, /* 59 */ +    0, /* 59 */      TclNeedSpace, /* 60 */      TclNewProcBodyObj, /* 61 */      TclObjCommandComplete, /* 62 */      TclObjInterpProc, /* 63 */      TclObjInvoke, /* 64 */ -    TclObjInvokeGlobal, /* 65 */ -    TclOpenFileChannelDeleteProc, /* 66 */ -    TclOpenFileChannelInsertProc, /* 67 */ -    NULL, /* 68 */ +    0, /* 65 */ +    0, /* 66 */ +    0, /* 67 */ +    0, /* 68 */      TclpAlloc, /* 69 */ -    NULL, /* 70 */ -    NULL, /* 71 */ -    NULL, /* 72 */ -    NULL, /* 73 */ +    0, /* 70 */ +    0, /* 71 */ +    0, /* 72 */ +    0, /* 73 */      TclpFree, /* 74 */      TclpGetClicks, /* 75 */      TclpGetSeconds, /* 76 */      TclpGetTime, /* 77 */ -    TclpGetTimeZone, /* 78 */ -    NULL, /* 79 */ -    NULL, /* 80 */ +    0, /* 78 */ +    0, /* 79 */ +    0, /* 80 */      TclpRealloc, /* 81 */ -    NULL, /* 82 */ -    NULL, /* 83 */ -    NULL, /* 84 */ -    NULL, /* 85 */ -    NULL, /* 86 */ -    NULL, /* 87 */ +    0, /* 82 */ +    0, /* 83 */ +    0, /* 84 */ +    0, /* 85 */ +    0, /* 86 */ +    0, /* 87 */      TclPrecTraceProc, /* 88 */      TclPreventAliasLoop, /* 89 */ -    NULL, /* 90 */ +    0, /* 90 */      TclProcCleanupProc, /* 91 */      TclProcCompileProc, /* 92 */      TclProcDeleteProc, /* 93 */ -    TclProcInterpProc, /* 94 */ -    NULL, /* 95 */ +    0, /* 94 */ +    0, /* 95 */      TclRenameCommand, /* 96 */      TclResetShadowedCmdRefs, /* 97 */      TclServiceIdle, /* 98 */ -    NULL, /* 99 */ -    NULL, /* 100 */ +    0, /* 99 */ +    0, /* 100 */      TclSetPreInitScript, /* 101 */      TclSetupEnv, /* 102 */      TclSockGetPort, /* 103 */ -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ -    TclSockMinimumBuffers, /* 104 */ -#endif /* UNIX */ -#ifdef __WIN32__ -    TclSockMinimumBuffers, /* 104 */ -#endif /* __WIN32__ */ -#ifdef MAC_TCL -    NULL, /* 104 */ -#endif /* MAC_TCL */ -    NULL, /* 105 */ -    TclStatDeleteProc, /* 106 */ -    TclStatInsertProc, /* 107 */ +    TclSockMinimumBuffersOld, /* 104 */ +    0, /* 105 */ +    0, /* 106 */ +    0, /* 107 */      TclTeardownNamespace, /* 108 */      TclUpdateReturnInfo, /* 109 */ -    NULL, /* 110 */ +    TclSockMinimumBuffers, /* 110 */      Tcl_AddInterpResolvers, /* 111 */      Tcl_AppendExportList, /* 112 */      Tcl_CreateNamespace, /* 113 */ @@ -205,13 +442,13 @@ TclIntStubs tclIntStubs = {      Tcl_SetNamespaceResolvers, /* 131 */      TclpHasSockets, /* 132 */      TclpGetDate, /* 133 */ -    TclpStrftime, /* 134 */ -    TclpCheckStackSpace, /* 135 */ -    NULL, /* 136 */ -    NULL, /* 137 */ +    0, /* 134 */ +    0, /* 135 */ +    0, /* 136 */ +    0, /* 137 */      TclGetEnv, /* 138 */ -    NULL, /* 139 */ -    TclLooksLikeInt, /* 140 */ +    0, /* 139 */ +    0, /* 140 */      TclpGetCwd, /* 141 */      TclSetByteCodeFromAny, /* 142 */      TclAddLiteralObj, /* 143 */ @@ -225,13 +462,13 @@ TclIntStubs tclIntStubs = {      TclRegExpRangeUniChar, /* 151 */      TclSetLibraryPath, /* 152 */      TclGetLibraryPath, /* 153 */ -    NULL, /* 154 */ -    NULL, /* 155 */ +    0, /* 154 */ +    0, /* 155 */      TclRegError, /* 156 */      TclVarTraceExists, /* 157 */      TclSetStartupScriptFileName, /* 158 */      TclGetStartupScriptFileName, /* 159 */ -    NULL, /* 160 */ +    0, /* 160 */      TclChannelTransform, /* 161 */      TclChannelEventScriptInvoker, /* 162 */      TclGetInstructionTable, /* 163 */ @@ -244,119 +481,280 @@ TclIntStubs tclIntStubs = {      TclCheckInterpTraces, /* 170 */      TclCheckExecutionTraces, /* 171 */      TclInThreadExit, /* 172 */ +    TclUniCharMatch, /* 173 */ +    0, /* 174 */ +    TclCallVarTraces, /* 175 */ +    TclCleanupVar, /* 176 */ +    TclVarErrMsg, /* 177 */ +    Tcl_SetStartupScript, /* 178 */ +    Tcl_GetStartupScript, /* 179 */ +    0, /* 180 */ +    0, /* 181 */ +    TclpLocaltime, /* 182 */ +    TclpGmtime, /* 183 */ +    0, /* 184 */ +    0, /* 185 */ +    0, /* 186 */ +    0, /* 187 */ +    0, /* 188 */ +    0, /* 189 */ +    0, /* 190 */ +    0, /* 191 */ +    0, /* 192 */ +    0, /* 193 */ +    0, /* 194 */ +    0, /* 195 */ +    0, /* 196 */ +    0, /* 197 */ +    TclObjGetFrame, /* 198 */ +    0, /* 199 */ +    TclpObjRemoveDirectory, /* 200 */ +    TclpObjCopyDirectory, /* 201 */ +    TclpObjCreateDirectory, /* 202 */ +    TclpObjDeleteFile, /* 203 */ +    TclpObjCopyFile, /* 204 */ +    TclpObjRenameFile, /* 205 */ +    TclpObjStat, /* 206 */ +    TclpObjAccess, /* 207 */ +    TclpOpenFileChannel, /* 208 */ +    0, /* 209 */ +    0, /* 210 */ +    0, /* 211 */ +    TclpFindExecutable, /* 212 */ +    TclGetObjNameOfExecutable, /* 213 */ +    TclSetObjNameOfExecutable, /* 214 */ +    TclStackAlloc, /* 215 */ +    TclStackFree, /* 216 */ +    TclPushStackFrame, /* 217 */ +    TclPopStackFrame, /* 218 */ +    0, /* 219 */ +    0, /* 220 */ +    0, /* 221 */ +    0, /* 222 */ +    0, /* 223 */ +    TclGetPlatform, /* 224 */ +    TclTraceDictPath, /* 225 */ +    TclObjBeingDeleted, /* 226 */ +    TclSetNsPath, /* 227 */ +    0, /* 228 */ +    TclPtrMakeUpvar, /* 229 */ +    TclObjLookupVar, /* 230 */ +    TclGetNamespaceFromObj, /* 231 */ +    TclEvalObjEx, /* 232 */ +    TclGetSrcInfoForPc, /* 233 */ +    TclVarHashCreateVar, /* 234 */ +    TclInitVarHashTable, /* 235 */ +    TclBackgroundException, /* 236 */ +    TclResetCancellation, /* 237 */ +    TclNRInterpProc, /* 238 */ +    TclNRInterpProcCore, /* 239 */ +    TclNRRunCallbacks, /* 240 */ +    TclNREvalObjEx, /* 241 */ +    TclNREvalObjv, /* 242 */ +    TclDbDumpActiveObjects, /* 243 */ +    TclGetNamespaceChildTable, /* 244 */ +    TclGetNamespaceCommandTable, /* 245 */ +    TclInitRewriteEnsemble, /* 246 */ +    TclResetRewriteEnsemble, /* 247 */ +    TclCopyChannel, /* 248 */ +    TclDoubleDigits, /* 249 */ +    TclSetSlaveCancelFlags, /* 250 */ +    TclRegisterLiteral, /* 251 */  }; -TclIntPlatStubs tclIntPlatStubs = { +static const TclIntPlatStubs tclIntPlatStubs = {      TCL_STUB_MAGIC, -    NULL, -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ +    0, +#if !defined(_WIN32) && !defined(__CYGWIN__) && !defined(MAC_OSX_TCL) /* UNIX */      TclGetAndDetachPids, /* 0 */      TclpCloseFile, /* 1 */      TclpCreateCommandChannel, /* 2 */      TclpCreatePipe, /* 3 */      TclpCreateProcess, /* 4 */ -    NULL, /* 5 */ +    0, /* 5 */      TclpMakeFile, /* 6 */      TclpOpenFile, /* 7 */      TclUnixWaitForFile, /* 8 */      TclpCreateTempFile, /* 9 */      TclpReaddir, /* 10 */ -    TclpLocaltime, /* 11 */ -    TclpGmtime, /* 12 */ +    TclpLocaltime_unix, /* 11 */ +    TclpGmtime_unix, /* 12 */      TclpInetNtoa, /* 13 */ +    TclUnixCopyFile, /* 14 */ +    0, /* 15 */ +    0, /* 16 */ +    0, /* 17 */ +    0, /* 18 */ +    0, /* 19 */ +    0, /* 20 */ +    0, /* 21 */ +    0, /* 22 */ +    0, /* 23 */ +    0, /* 24 */ +    0, /* 25 */ +    0, /* 26 */ +    0, /* 27 */ +    0, /* 28 */ +    TclWinCPUID, /* 29 */ +    TclUnixOpenTemporaryFile, /* 30 */  #endif /* UNIX */ -#ifdef __WIN32__ +#if defined(_WIN32) || defined(__CYGWIN__) /* WIN */      TclWinConvertError, /* 0 */      TclWinConvertWSAError, /* 1 */      TclWinGetServByName, /* 2 */      TclWinGetSockOpt, /* 3 */      TclWinGetTclInstance, /* 4 */ -    NULL, /* 5 */ +    TclUnixWaitForFile, /* 5 */      TclWinNToHS, /* 6 */      TclWinSetSockOpt, /* 7 */      TclpGetPid, /* 8 */      TclWinGetPlatformId, /* 9 */ -    NULL, /* 10 */ +    TclpReaddir, /* 10 */      TclGetAndDetachPids, /* 11 */      TclpCloseFile, /* 12 */      TclpCreateCommandChannel, /* 13 */      TclpCreatePipe, /* 14 */      TclpCreateProcess, /* 15 */ -    NULL, /* 16 */ -    NULL, /* 17 */ +    TclpIsAtty, /* 16 */ +    TclUnixCopyFile, /* 17 */      TclpMakeFile, /* 18 */      TclpOpenFile, /* 19 */      TclWinAddProcess, /* 20 */ -    NULL, /* 21 */ +    TclpInetNtoa, /* 21 */      TclpCreateTempFile, /* 22 */ -    TclpGetTZName, /* 23 */ +    0, /* 23 */      TclWinNoBackslash, /* 24 */ -    TclWinGetPlatform, /* 25 */ +    0, /* 25 */      TclWinSetInterfaces, /* 26 */      TclWinFlushDirtyChannels, /* 27 */      TclWinResetInterfaces, /* 28 */ -#endif /* __WIN32__ */ -#ifdef MAC_TCL -    TclpSysAlloc, /* 0 */ -    TclpSysFree, /* 1 */ -    TclpSysRealloc, /* 2 */ -    TclpExit, /* 3 */ -    FSpGetDefaultDir, /* 4 */ -    FSpSetDefaultDir, /* 5 */ -    FSpFindFolder, /* 6 */ -    GetGlobalMouseTcl, /* 7 */ -    FSpGetDirectoryIDTcl, /* 8 */ -    FSpOpenResFileCompatTcl, /* 9 */ -    FSpCreateResFileCompatTcl, /* 10 */ -    FSpLocationFromPath, /* 11 */ -    FSpPathFromLocation, /* 12 */ -    TclMacExitHandler, /* 13 */ -    TclMacInitExitToShell, /* 14 */ -    TclMacInstallExitToShellPatch, /* 15 */ -    TclMacOSErrorToPosixError, /* 16 */ -    TclMacRemoveTimer, /* 17 */ -    TclMacStartTimer, /* 18 */ -    TclMacTimerExpired, /* 19 */ -    TclMacRegisterResourceFork, /* 20 */ -    TclMacUnRegisterResourceFork, /* 21 */ -    TclMacCreateEnv, /* 22 */ -    TclMacFOpenHack, /* 23 */ -    TclpGetTZName, /* 24 */ -    TclMacChmod, /* 25 */ -    FSpLLocationFromPath, /* 26 */ -#endif /* MAC_TCL */ +    TclWinCPUID, /* 29 */ +    TclUnixOpenTemporaryFile, /* 30 */ +#endif /* WIN */ +#ifdef MAC_OSX_TCL /* MACOSX */ +    TclGetAndDetachPids, /* 0 */ +    TclpCloseFile, /* 1 */ +    TclpCreateCommandChannel, /* 2 */ +    TclpCreatePipe, /* 3 */ +    TclpCreateProcess, /* 4 */ +    0, /* 5 */ +    TclpMakeFile, /* 6 */ +    TclpOpenFile, /* 7 */ +    TclUnixWaitForFile, /* 8 */ +    TclpCreateTempFile, /* 9 */ +    TclpReaddir, /* 10 */ +    TclpLocaltime_unix, /* 11 */ +    TclpGmtime_unix, /* 12 */ +    TclpInetNtoa, /* 13 */ +    TclUnixCopyFile, /* 14 */ +    TclMacOSXGetFileAttribute, /* 15 */ +    TclMacOSXSetFileAttribute, /* 16 */ +    TclMacOSXCopyFileAttributes, /* 17 */ +    TclMacOSXMatchType, /* 18 */ +    TclMacOSXNotifierAddRunLoopMode, /* 19 */ +    0, /* 20 */ +    0, /* 21 */ +    0, /* 22 */ +    0, /* 23 */ +    0, /* 24 */ +    0, /* 25 */ +    0, /* 26 */ +    0, /* 27 */ +    0, /* 28 */ +    TclWinCPUID, /* 29 */ +    TclUnixOpenTemporaryFile, /* 30 */ +#endif /* MACOSX */  }; -TclPlatStubs tclPlatStubs = { +static const TclPlatStubs tclPlatStubs = {      TCL_STUB_MAGIC, -    NULL, -#ifdef __WIN32__ +    0, +#if defined(_WIN32) || defined(__CYGWIN__) /* WIN */      Tcl_WinUtfToTChar, /* 0 */      Tcl_WinTCharToUtf, /* 1 */ -#endif /* __WIN32__ */ -#ifdef MAC_TCL -    Tcl_MacSetEventProc, /* 0 */ -    Tcl_MacConvertTextResource, /* 1 */ -    Tcl_MacEvalResource, /* 2 */ -    Tcl_MacFindResource, /* 3 */ -    Tcl_GetOSTypeFromObj, /* 4 */ -    Tcl_SetOSTypeObj, /* 5 */ -    Tcl_NewOSTypeObj, /* 6 */ -    strncasecmp, /* 7 */ -    strcasecmp, /* 8 */ -#endif /* MAC_TCL */ -#ifdef MAC_OSX_TCL +#endif /* WIN */ +#ifdef MAC_OSX_TCL /* MACOSX */      Tcl_MacOSXOpenBundleResources, /* 0 */ -#endif /* MAC_OSX_TCL */ +    Tcl_MacOSXOpenVersionedBundleResources, /* 1 */ +#endif /* MACOSX */ +}; + +const TclTomMathStubs tclTomMathStubs = { +    TCL_STUB_MAGIC, +    0, +    TclBN_epoch, /* 0 */ +    TclBN_revision, /* 1 */ +    TclBN_mp_add, /* 2 */ +    TclBN_mp_add_d, /* 3 */ +    TclBN_mp_and, /* 4 */ +    TclBN_mp_clamp, /* 5 */ +    TclBN_mp_clear, /* 6 */ +    TclBN_mp_clear_multi, /* 7 */ +    TclBN_mp_cmp, /* 8 */ +    TclBN_mp_cmp_d, /* 9 */ +    TclBN_mp_cmp_mag, /* 10 */ +    TclBN_mp_copy, /* 11 */ +    TclBN_mp_count_bits, /* 12 */ +    TclBN_mp_div, /* 13 */ +    TclBN_mp_div_d, /* 14 */ +    TclBN_mp_div_2, /* 15 */ +    TclBN_mp_div_2d, /* 16 */ +    TclBN_mp_div_3, /* 17 */ +    TclBN_mp_exch, /* 18 */ +    TclBN_mp_expt_d, /* 19 */ +    TclBN_mp_grow, /* 20 */ +    TclBN_mp_init, /* 21 */ +    TclBN_mp_init_copy, /* 22 */ +    TclBN_mp_init_multi, /* 23 */ +    TclBN_mp_init_set, /* 24 */ +    TclBN_mp_init_size, /* 25 */ +    TclBN_mp_lshd, /* 26 */ +    TclBN_mp_mod, /* 27 */ +    TclBN_mp_mod_2d, /* 28 */ +    TclBN_mp_mul, /* 29 */ +    TclBN_mp_mul_d, /* 30 */ +    TclBN_mp_mul_2, /* 31 */ +    TclBN_mp_mul_2d, /* 32 */ +    TclBN_mp_neg, /* 33 */ +    TclBN_mp_or, /* 34 */ +    TclBN_mp_radix_size, /* 35 */ +    TclBN_mp_read_radix, /* 36 */ +    TclBN_mp_rshd, /* 37 */ +    TclBN_mp_shrink, /* 38 */ +    TclBN_mp_set, /* 39 */ +    TclBN_mp_sqr, /* 40 */ +    TclBN_mp_sqrt, /* 41 */ +    TclBN_mp_sub, /* 42 */ +    TclBN_mp_sub_d, /* 43 */ +    TclBN_mp_to_unsigned_bin, /* 44 */ +    TclBN_mp_to_unsigned_bin_n, /* 45 */ +    TclBN_mp_toradix_n, /* 46 */ +    TclBN_mp_unsigned_bin_size, /* 47 */ +    TclBN_mp_xor, /* 48 */ +    TclBN_mp_zero, /* 49 */ +    TclBN_reverse, /* 50 */ +    TclBN_fast_s_mp_mul_digs, /* 51 */ +    TclBN_fast_s_mp_sqr, /* 52 */ +    TclBN_mp_karatsuba_mul, /* 53 */ +    TclBN_mp_karatsuba_sqr, /* 54 */ +    TclBN_mp_toom_mul, /* 55 */ +    TclBN_mp_toom_sqr, /* 56 */ +    TclBN_s_mp_add, /* 57 */ +    TclBN_s_mp_mul_digs, /* 58 */ +    TclBN_s_mp_sqr, /* 59 */ +    TclBN_s_mp_sub, /* 60 */ +    TclBN_mp_init_set_int, /* 61 */ +    TclBN_mp_set_int, /* 62 */ +    TclBN_mp_cnt_lsb, /* 63 */  }; -static TclStubHooks tclStubHooks = { +static const TclStubHooks tclStubHooks = {      &tclPlatStubs,      &tclIntStubs,      &tclIntPlatStubs  }; -TclStubs tclStubs = { +const TclStubs tclStubs = {      TCL_STUB_MAGIC,      &tclStubHooks,      Tcl_PkgProvideEx, /* 0 */ @@ -368,24 +766,24 @@ TclStubs tclStubs = {      Tcl_DbCkalloc, /* 6 */      Tcl_DbCkfree, /* 7 */      Tcl_DbCkrealloc, /* 8 */ -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ +#if !defined(_WIN32) && !defined(MAC_OSX_TCL) /* UNIX */      Tcl_CreateFileHandler, /* 9 */  #endif /* UNIX */ -#ifdef __WIN32__ -    NULL, /* 9 */ -#endif /* __WIN32__ */ -#ifdef MAC_TCL -    NULL, /* 9 */ -#endif /* MAC_TCL */ -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ +#if defined(_WIN32) /* WIN */ +    0, /* 9 */ +#endif /* WIN */ +#ifdef MAC_OSX_TCL /* MACOSX */ +    Tcl_CreateFileHandler, /* 9 */ +#endif /* MACOSX */ +#if !defined(_WIN32) && !defined(MAC_OSX_TCL) /* UNIX */      Tcl_DeleteFileHandler, /* 10 */  #endif /* UNIX */ -#ifdef __WIN32__ -    NULL, /* 10 */ -#endif /* __WIN32__ */ -#ifdef MAC_TCL -    NULL, /* 10 */ -#endif /* MAC_TCL */ +#if defined(_WIN32) /* WIN */ +    0, /* 10 */ +#endif /* WIN */ +#ifdef MAC_OSX_TCL /* MACOSX */ +    Tcl_DeleteFileHandler, /* 10 */ +#endif /* MACOSX */      Tcl_SetTimer, /* 11 */      Tcl_Sleep, /* 12 */      Tcl_WaitForEvent, /* 13 */ @@ -486,15 +884,7 @@ TclStubs tclStubs = {      Tcl_DeleteHashEntry, /* 108 */      Tcl_DeleteHashTable, /* 109 */      Tcl_DeleteInterp, /* 110 */ -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */      Tcl_DetachPids, /* 111 */ -#endif /* UNIX */ -#ifdef __WIN32__ -    Tcl_DetachPids, /* 111 */ -#endif /* __WIN32__ */ -#ifdef MAC_TCL -    NULL, /* 111 */ -#endif /* MAC_TCL */      Tcl_DeleteTimerHandler, /* 112 */      Tcl_DeleteTrace, /* 113 */      Tcl_DontCallWhenDeleted, /* 114 */ @@ -550,15 +940,15 @@ TclStubs tclStubs = {      Tcl_GetMaster, /* 164 */      Tcl_GetNameOfExecutable, /* 165 */      Tcl_GetObjResult, /* 166 */ -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ +#if !defined(_WIN32) && !defined(MAC_OSX_TCL) /* UNIX */      Tcl_GetOpenFile, /* 167 */  #endif /* UNIX */ -#ifdef __WIN32__ -    NULL, /* 167 */ -#endif /* __WIN32__ */ -#ifdef MAC_TCL -    NULL, /* 167 */ -#endif /* MAC_TCL */ +#if defined(_WIN32) /* WIN */ +    0, /* 167 */ +#endif /* WIN */ +#ifdef MAC_OSX_TCL /* MACOSX */ +    Tcl_GetOpenFile, /* 167 */ +#endif /* MACOSX */      Tcl_GetPathType, /* 168 */      Tcl_Gets, /* 169 */      Tcl_GetsObj, /* 170 */ @@ -579,7 +969,7 @@ TclStubs tclStubs = {      Tcl_IsSafe, /* 185 */      Tcl_JoinPath, /* 186 */      Tcl_LinkVar, /* 187 */ -    NULL, /* 188 */ +    0, /* 188 */      Tcl_MakeFileChannel, /* 189 */      Tcl_MakeSafe, /* 190 */      Tcl_MakeTcpClientChannel, /* 191 */ @@ -588,15 +978,7 @@ TclStubs tclStubs = {      Tcl_NotifyChannel, /* 194 */      Tcl_ObjGetVar2, /* 195 */      Tcl_ObjSetVar2, /* 196 */ -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */      Tcl_OpenCommandChannel, /* 197 */ -#endif /* UNIX */ -#ifdef __WIN32__ -    Tcl_OpenCommandChannel, /* 197 */ -#endif /* __WIN32__ */ -#ifdef MAC_TCL -    NULL, /* 197 */ -#endif /* MAC_TCL */      Tcl_OpenFileChannel, /* 198 */      Tcl_OpenTcpClient, /* 199 */      Tcl_OpenTcpServer, /* 200 */ @@ -606,15 +988,7 @@ TclStubs tclStubs = {      Tcl_PosixError, /* 204 */      Tcl_QueueEvent, /* 205 */      Tcl_Read, /* 206 */ -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ -    Tcl_ReapDetachedProcs, /* 207 */ -#endif /* UNIX */ -#ifdef __WIN32__      Tcl_ReapDetachedProcs, /* 207 */ -#endif /* __WIN32__ */ -#ifdef MAC_TCL -    NULL, /* 207 */ -#endif /* MAC_TCL */      Tcl_RecordAndEval, /* 208 */      Tcl_RecordAndEvalObj, /* 209 */      Tcl_RegisterChannel, /* 210 */ @@ -692,7 +1066,7 @@ TclStubs tclStubs = {      Tcl_UnstackChannel, /* 282 */      Tcl_GetStackedChannel, /* 283 */      Tcl_SetMainLoop, /* 284 */ -    NULL, /* 285 */ +    0, /* 285 */      Tcl_AppendObjToObj, /* 286 */      Tcl_CreateEncoding, /* 287 */      Tcl_CreateThreadExitHandler, /* 288 */ @@ -901,6 +1275,143 @@ TclStubs tclStubs = {      Tcl_Seek, /* 491 */      Tcl_Tell, /* 492 */      Tcl_ChannelWideSeekProc, /* 493 */ +    Tcl_DictObjPut, /* 494 */ +    Tcl_DictObjGet, /* 495 */ +    Tcl_DictObjRemove, /* 496 */ +    Tcl_DictObjSize, /* 497 */ +    Tcl_DictObjFirst, /* 498 */ +    Tcl_DictObjNext, /* 499 */ +    Tcl_DictObjDone, /* 500 */ +    Tcl_DictObjPutKeyList, /* 501 */ +    Tcl_DictObjRemoveKeyList, /* 502 */ +    Tcl_NewDictObj, /* 503 */ +    Tcl_DbNewDictObj, /* 504 */ +    Tcl_RegisterConfig, /* 505 */ +    Tcl_CreateNamespace, /* 506 */ +    Tcl_DeleteNamespace, /* 507 */ +    Tcl_AppendExportList, /* 508 */ +    Tcl_Export, /* 509 */ +    Tcl_Import, /* 510 */ +    Tcl_ForgetImport, /* 511 */ +    Tcl_GetCurrentNamespace, /* 512 */ +    Tcl_GetGlobalNamespace, /* 513 */ +    Tcl_FindNamespace, /* 514 */ +    Tcl_FindCommand, /* 515 */ +    Tcl_GetCommandFromObj, /* 516 */ +    Tcl_GetCommandFullName, /* 517 */ +    Tcl_FSEvalFileEx, /* 518 */ +    Tcl_SetExitProc, /* 519 */ +    Tcl_LimitAddHandler, /* 520 */ +    Tcl_LimitRemoveHandler, /* 521 */ +    Tcl_LimitReady, /* 522 */ +    Tcl_LimitCheck, /* 523 */ +    Tcl_LimitExceeded, /* 524 */ +    Tcl_LimitSetCommands, /* 525 */ +    Tcl_LimitSetTime, /* 526 */ +    Tcl_LimitSetGranularity, /* 527 */ +    Tcl_LimitTypeEnabled, /* 528 */ +    Tcl_LimitTypeExceeded, /* 529 */ +    Tcl_LimitTypeSet, /* 530 */ +    Tcl_LimitTypeReset, /* 531 */ +    Tcl_LimitGetCommands, /* 532 */ +    Tcl_LimitGetTime, /* 533 */ +    Tcl_LimitGetGranularity, /* 534 */ +    Tcl_SaveInterpState, /* 535 */ +    Tcl_RestoreInterpState, /* 536 */ +    Tcl_DiscardInterpState, /* 537 */ +    Tcl_SetReturnOptions, /* 538 */ +    Tcl_GetReturnOptions, /* 539 */ +    Tcl_IsEnsemble, /* 540 */ +    Tcl_CreateEnsemble, /* 541 */ +    Tcl_FindEnsemble, /* 542 */ +    Tcl_SetEnsembleSubcommandList, /* 543 */ +    Tcl_SetEnsembleMappingDict, /* 544 */ +    Tcl_SetEnsembleUnknownHandler, /* 545 */ +    Tcl_SetEnsembleFlags, /* 546 */ +    Tcl_GetEnsembleSubcommandList, /* 547 */ +    Tcl_GetEnsembleMappingDict, /* 548 */ +    Tcl_GetEnsembleUnknownHandler, /* 549 */ +    Tcl_GetEnsembleFlags, /* 550 */ +    Tcl_GetEnsembleNamespace, /* 551 */ +    Tcl_SetTimeProc, /* 552 */ +    Tcl_QueryTimeProc, /* 553 */ +    Tcl_ChannelThreadActionProc, /* 554 */ +    Tcl_NewBignumObj, /* 555 */ +    Tcl_DbNewBignumObj, /* 556 */ +    Tcl_SetBignumObj, /* 557 */ +    Tcl_GetBignumFromObj, /* 558 */ +    Tcl_TakeBignumFromObj, /* 559 */ +    Tcl_TruncateChannel, /* 560 */ +    Tcl_ChannelTruncateProc, /* 561 */ +    Tcl_SetChannelErrorInterp, /* 562 */ +    Tcl_GetChannelErrorInterp, /* 563 */ +    Tcl_SetChannelError, /* 564 */ +    Tcl_GetChannelError, /* 565 */ +    Tcl_InitBignumFromDouble, /* 566 */ +    Tcl_GetNamespaceUnknownHandler, /* 567 */ +    Tcl_SetNamespaceUnknownHandler, /* 568 */ +    Tcl_GetEncodingFromObj, /* 569 */ +    Tcl_GetEncodingSearchPath, /* 570 */ +    Tcl_SetEncodingSearchPath, /* 571 */ +    Tcl_GetEncodingNameFromEnvironment, /* 572 */ +    Tcl_PkgRequireProc, /* 573 */ +    Tcl_AppendObjToErrorInfo, /* 574 */ +    Tcl_AppendLimitedToObj, /* 575 */ +    Tcl_Format, /* 576 */ +    Tcl_AppendFormatToObj, /* 577 */ +    Tcl_ObjPrintf, /* 578 */ +    Tcl_AppendPrintfToObj, /* 579 */ +    Tcl_CancelEval, /* 580 */ +    Tcl_Canceled, /* 581 */ +    Tcl_CreatePipe, /* 582 */ +    Tcl_NRCreateCommand, /* 583 */ +    Tcl_NREvalObj, /* 584 */ +    Tcl_NREvalObjv, /* 585 */ +    Tcl_NRCmdSwap, /* 586 */ +    Tcl_NRAddCallback, /* 587 */ +    Tcl_NRCallObjProc, /* 588 */ +    Tcl_GetFSDeviceFromStat, /* 589 */ +    Tcl_GetFSInodeFromStat, /* 590 */ +    Tcl_GetModeFromStat, /* 591 */ +    Tcl_GetLinkCountFromStat, /* 592 */ +    Tcl_GetUserIdFromStat, /* 593 */ +    Tcl_GetGroupIdFromStat, /* 594 */ +    Tcl_GetDeviceTypeFromStat, /* 595 */ +    Tcl_GetAccessTimeFromStat, /* 596 */ +    Tcl_GetModificationTimeFromStat, /* 597 */ +    Tcl_GetChangeTimeFromStat, /* 598 */ +    Tcl_GetSizeFromStat, /* 599 */ +    Tcl_GetBlocksFromStat, /* 600 */ +    Tcl_GetBlockSizeFromStat, /* 601 */ +    Tcl_SetEnsembleParameterList, /* 602 */ +    Tcl_GetEnsembleParameterList, /* 603 */ +    Tcl_ParseArgsObjv, /* 604 */ +    Tcl_GetErrorLine, /* 605 */ +    Tcl_SetErrorLine, /* 606 */ +    Tcl_TransferResult, /* 607 */ +    Tcl_InterpActive, /* 608 */ +    Tcl_BackgroundException, /* 609 */ +    Tcl_ZlibDeflate, /* 610 */ +    Tcl_ZlibInflate, /* 611 */ +    Tcl_ZlibCRC32, /* 612 */ +    Tcl_ZlibAdler32, /* 613 */ +    Tcl_ZlibStreamInit, /* 614 */ +    Tcl_ZlibStreamGetCommandName, /* 615 */ +    Tcl_ZlibStreamEof, /* 616 */ +    Tcl_ZlibStreamChecksum, /* 617 */ +    Tcl_ZlibStreamPut, /* 618 */ +    Tcl_ZlibStreamGet, /* 619 */ +    Tcl_ZlibStreamClose, /* 620 */ +    Tcl_ZlibStreamReset, /* 621 */ +    Tcl_SetStartupScript, /* 622 */ +    Tcl_GetStartupScript, /* 623 */ +    Tcl_CloseEx, /* 624 */ +    Tcl_NRExprObj, /* 625 */ +    Tcl_NRSubstObj, /* 626 */ +    Tcl_LoadFile, /* 627 */ +    Tcl_FindSymbol, /* 628 */ +    Tcl_FSUnloadFile, /* 629 */ +    Tcl_ZlibStreamSetCompressionDictionary, /* 630 */  };  /* !END!: Do not edit above this line. */ | 
