1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
/*----------------------------------------------------------------------------
| Copyright (c) 2007 Rolf Ade (rolf@pointsman.de)
+-----------------------------------------------------------------------------
|
| $Id$
|
| Implements entry point, which has to be called by C coded extensions
| to tDOM. Following http://wiki.tcl.tk/3358.
|
| The contents of this file are subject to the Mozilla Public License
| Version 1.1 (the "License"); you may not use this file except in
| compliance with the License. You may obtain a copy of the License at
| http://www.mozilla.org/MPL/
|
| Software distributed under the License is distributed on an "AS IS"
| basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
| License for the specific language governing rights and limitations
| under the License.
|
| The Original Code is tDOM.
|
| The Initial Developer of the Original Code is Jochen Loewer
| Portions created by Jochen Loewer are Copyright (C) 1998, 1999
| Jochen Loewer. All Rights Reserved.
|
| Contributor(s):
|
|
| written by Rolf Ade
| August, 2007
|
\---------------------------------------------------------------------------*/
#ifndef USE_TCL_STUBS
# define USE_TCL_STUBS
#endif
#undef USE_TCL_STUB_PROCS
#include <tdom.h>
/*
* Ensure that Tdom_InitStubs is built as an exported symbol. The other stub
* functions should be built as non-exported symbols.
*/
#undef TCL_STORAGE_CLASS
#define TCL_STORAGE_CLASS DLLEXPORT
const TdomStubs *tdomStubsPtr;
/*----------------------------------------------------------------------------
| Tdom_InitStubs
|
\---------------------------------------------------------------------------*/
const char *
Tdom_InitStubs (
Tcl_Interp *interp,
char *version,
int exact
)
{
const char *actualVersion;
ClientData clientData = NULL;
#if (TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION == 0)
Tcl_SetResult(interp, "Too old Tcl version. Binary extensions "
"to tDOM are not possible, with a that outdated "
"Tcl version.", TCL_STATIC);
return NULL;
#else
actualVersion = Tcl_PkgRequireEx(interp, "tdom", version, exact,
(ClientData*) &clientData);
tdomStubsPtr = (TdomStubs*)clientData;
if (!actualVersion) {
return NULL;
}
if (!tdomStubsPtr) {
Tcl_SetResult(interp, "This implementation of Tdom does not "
"support stubs", TCL_STATIC);
return NULL;
}
return actualVersion;
#endif
}
|