#define USE_TCL_STUBS #include "tcl.h" #include /* * This block of code forms the "private stubs" mechanism, a way * to build Tcl extensions without linking with the Tcl stubs library. */ #undef Tcl_InitStubs #define Tcl_InitStubs staticTclInitStubs #define tclStubsPtr staticTclStubsPtr static const TclStubs *tclStubsPtr = NULL; typedef struct { char *result; Tcl_FreeProc *freeProc; int errorLine; const struct TclStubs *stubTable; } PrivateTclInterp; static const char *Tcl_InitStubs(Tcl_Interp *interp, const char *version, int exact) { tclStubsPtr = ((PrivateTclInterp *)interp)->stubTable; return Tcl_PkgRequireEx(interp, "Tcl", version, 0, (void *)&tclStubsPtr); } /* End of "private stubs" section */ DLLEXPORT int Fossil_Init( Tcl_Interp *interp) /* Interpreter in which the package is to be * made available. */ { int code; if (Tcl_InitStubs(interp, "8.4", 0) == NULL) { return TCL_ERROR; } code = Tcl_PkgProvideEx(interp, "fossil", "0.1", NULL); if (code != TCL_OK) { return code; } return TCL_OK; }