1 /*
2 * itkStubLib.c --
3 *
4 * Stub object that will be statically linked into extensions that wish
5 * to access Itk.
6 *
7 * Copyright (c) 1998-1999 by XXXX
8 * Copyright (c) 1998 Paul Duffin.
9 *
10 * See the file "license.terms" for information on usage and redistribution
11 * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
12 *
13 * RCS: $Id: itkStubLib.c,v 1.7 2003/12/24 03:38:03 davygrvy Exp $
14 */
15
16 /*
17 * We need to ensure that we use the stub macros so that this file contains
18 * no references to any of the stub functions. This will make it possible
19 * to build an extension that references Tcl_InitStubs but doesn't end up
20 * including the rest of the stub functions.
21 */
22
23 #ifndef USE_TCL_STUBS
24 #define USE_TCL_STUBS
25 #endif
26 #undef USE_TCL_STUB_PROCS
27
28 #ifndef USE_ITK_STUBS
29 #define USE_ITK_STUBS
30 #endif
31 #undef USE_ITK_STUB_PROCS
32
33 #include "itk.h"
34
35 ItkStubs *itkStubsPtr;
36
37
38 /*
39 *----------------------------------------------------------------------
40 *
41 * Itk_InitStubs --
42 *
43 * Tries to initialise the stub table pointers and ensures that
44 * the correct version of Itk is loaded.
45 *
46 * Results:
47 * The actual version of Itk that satisfies the request, or
48 * NULL to indicate that an error occurred.
49 *
50 * Side effects:
51 * Sets the stub table pointers.
52 *
53 *----------------------------------------------------------------------
54 */
55
56 CONST char *
Itk_InitStubs(interp,version,exact)57 Itk_InitStubs (interp, version, exact)
58 Tcl_Interp *interp;
59 CONST char *version;
60 int exact;
61 {
62 CONST char *actualVersion;
63
64 actualVersion = Tcl_PkgRequireEx(interp, "Itk", (CONST84 char *)version, exact,
65 (ClientData *) &itkStubsPtr);
66
67 if (actualVersion == NULL) {
68 itkStubsPtr = NULL;
69 return NULL;
70 }
71
72 return actualVersion;
73 }
74