15
17
fitsTclOptions userOptions;
20
FitsTclInterpToTokens(
24
Tcl_Command *cmdTokens;
25
Tcl_HashEntry *entryPtr =
26
Tcl_CreateHashEntry(&interpTokenMap, (char *) interp, &newEntry);
29
cmdTokens = (Tcl_Command *)
30
Tcl_Alloc(sizeof(Tcl_Command) * (MAX_REGISTERED_COMMANDS+1));
31
for (newEntry=0 ; newEntry<MAX_REGISTERED_COMMANDS+1 ; ++newEntry) {
32
cmdTokens[newEntry] = NULL;
34
Tcl_SetHashValue(entryPtr, (ClientData) cmdTokens);
36
cmdTokens = (Tcl_Command *) Tcl_GetHashValue(entryPtr);
42
FitsTclFreeTokensHashTable(void)
44
Tcl_HashSearch search;
45
Tcl_HashEntry *entryPtr;
47
for (entryPtr = Tcl_FirstHashEntry(&interpTokenMap, &search);
48
entryPtr != NULL; entryPtr = Tcl_NextHashEntry(&search)) {
49
Tcl_Free((char *) Tcl_GetHashValue(entryPtr));
51
interpTokenMapInitialised = 0;
55
Fits_SafeInit (interp)
56
Tcl_Interp *interp; /* The Tcl Interpreter to initialize */
58
return Fits_Init(interp);
65
Tcl_HashEntry *entryPtr =
66
Tcl_FindHashEntry(&interpTokenMap, (char *) interp);
69
Tcl_Free((char *) Tcl_GetHashValue(entryPtr));
70
Tcl_DeleteHashEntry(entryPtr);
75
*----------------------------------------------------------------------
79
* This is a package unloading initialization procedure, which is called
80
* by Tcl when this package is to be unloaded from an interpreter.
88
*----------------------------------------------------------------------
93
Tcl_Interp *interp, /* Interpreter from which the package is to be
95
int flags) /* Flags passed by the unloading mechanism */
98
Tcl_Command *cmdTokens = FitsTclInterpToTokens(interp);
100
for (cmdIndex=0 ; cmdIndex<MAX_REGISTERED_COMMANDS ; cmdIndex++) {
101
if (cmdTokens[cmdIndex] == NULL) {
104
code = Tcl_DeleteCommandFromToken(interp, cmdTokens[cmdIndex]);
105
if (code != TCL_OK) {
110
FitsTclDeleteTokens(interp);
112
Tcl_SetVar(interp, "::FitsTcl_detached", ".", TCL_APPEND_VALUE);
114
if (flags == TCL_UNLOAD_DETACH_FROM_PROCESS) {
116
* Tcl is ready to detach this library from the running application.
117
* We should free all the memory that is not related to any
121
FitsTclFreeTokensHashTable();
122
Tcl_SetVar(interp, "::FitsTcl_unloaded", ".", TCL_APPEND_VALUE);
128
*----------------------------------------------------------------------
130
* FitsTcl_SafeUnload --
132
* This is a package unloading initialization procedure, which is called
133
* by Tcl when this package is to be unloaded from an interpreter.
141
*----------------------------------------------------------------------
146
Tcl_Interp *interp, /* Interpreter from which the package is to be
148
int flags) /* Flags passed by the unloading mechanism */
150
return FitsTcl_Unload(interp, flags);
18
154
Fits_Init (interp)
19
155
Tcl_Interp *interp; /* The Tcl Interpreter to initialize */