1# tcl.decls --
2#
3#	This file contains the declarations for all supported public
4#	functions that are exported by the Tcl library via the stubs table.
5#	This file is used to generate the tclDecls.h, tclPlatDecls.h,
6#	tclStub.c, and tclPlatStub.c files.
7#	
8#
9# Copyright (c) 1998-1999 by Scriptics Corporation.
10# Copyright (c) 2001, 2002 by Kevin B. Kenny.  All rights reserved.
11# See the file "license.terms" for information on usage and redistribution
12# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
13# 
14# RCS: @(#) $Id: tcl.decls,v 1.94.2.4 2006/09/22 01:26:22 andreas_kupries Exp $
15
16library tcl
17
18# Define the tcl interface with several sub interfaces:
19#     tclPlat	 - platform specific public
20#     tclInt	 - generic private
21#     tclPlatInt - platform specific private
22
23interface tcl
24hooks {tclPlat tclInt tclIntPlat}
25
26# Declare each of the functions in the public Tcl interface.  Note that
27# the an index should never be reused for a different function in order
28# to preserve backwards compatibility.
29
30declare 0 generic {
31    int Tcl_PkgProvideEx(Tcl_Interp* interp, CONST char* name,
32	    CONST char* version, ClientData clientData)
33}
34declare 1 generic {
35    CONST84_RETURN char * Tcl_PkgRequireEx(Tcl_Interp *interp, CONST char *name,
36	    CONST char *version, int exact, ClientData *clientDataPtr)
37}
38declare 2 generic {
39    void Tcl_Panic(CONST char *format, ...)
40}
41declare 3 generic {
42    char * Tcl_Alloc(unsigned int size)
43}
44declare 4 generic {
45    void Tcl_Free(char *ptr)
46}
47declare 5 generic {
48    char * Tcl_Realloc(char *ptr, unsigned int size)
49}
50declare 6 generic {
51    char * Tcl_DbCkalloc(unsigned int size, CONST char *file, int line)
52}
53declare 7 generic {
54    int Tcl_DbCkfree(char *ptr, CONST char *file, int line)
55}
56declare 8 generic {
57    char * Tcl_DbCkrealloc(char *ptr, unsigned int size,
58	    CONST char *file, int line)
59}
60
61# Tcl_CreateFileHandler and Tcl_DeleteFileHandler are only available on unix,
62# but they are part of the old generic interface, so we include them here for
63# compatibility reasons.
64
65declare 9 unix {
66    void Tcl_CreateFileHandler(int fd, int mask, Tcl_FileProc *proc,
67	    ClientData clientData)
68}
69declare 10 unix {
70    void Tcl_DeleteFileHandler(int fd)
71}
72
73declare 11 generic {
74    void Tcl_SetTimer(Tcl_Time *timePtr)
75}
76declare 12 generic {
77    void Tcl_Sleep(int ms)
78}
79declare 13 generic {
80    int Tcl_WaitForEvent(Tcl_Time *timePtr)
81}
82declare 14 generic {
83    int Tcl_AppendAllObjTypes(Tcl_Interp *interp, Tcl_Obj *objPtr)
84}
85declare 15 generic {
86    void Tcl_AppendStringsToObj(Tcl_Obj *objPtr, ...)
87}
88declare 16 generic {
89    void Tcl_AppendToObj(Tcl_Obj* objPtr, CONST char* bytes, int length)
90}
91declare 17 generic {
92    Tcl_Obj * Tcl_ConcatObj(int objc, Tcl_Obj *CONST objv[])
93}
94declare 18 generic {
95    int Tcl_ConvertToType(Tcl_Interp *interp, Tcl_Obj *objPtr,
96	    Tcl_ObjType *typePtr)
97}
98declare 19 generic {
99    void Tcl_DbDecrRefCount(Tcl_Obj *objPtr, CONST char *file, int line)
100}
101declare 20 generic {
102    void Tcl_DbIncrRefCount(Tcl_Obj *objPtr, CONST char *file, int line)
103}
104declare 21 generic {
105    int Tcl_DbIsShared(Tcl_Obj *objPtr, CONST char *file, int line)
106}
107declare 22 generic {
108    Tcl_Obj * Tcl_DbNewBooleanObj(int boolValue, CONST char *file, int line)
109}
110declare 23 generic {
111    Tcl_Obj * Tcl_DbNewByteArrayObj(CONST unsigned char *bytes, int length,
112	    CONST char *file, int line)
113}
114declare 24 generic {
115    Tcl_Obj * Tcl_DbNewDoubleObj(double doubleValue,
116	    CONST char *file, int line)
117}
118declare 25 generic {
119    Tcl_Obj * Tcl_DbNewListObj(int objc, Tcl_Obj *CONST *objv, 
120	    CONST char *file, int line)
121}
122declare 26 generic {
123    Tcl_Obj * Tcl_DbNewLongObj(long longValue, CONST char *file, int line)
124}
125declare 27 generic {
126    Tcl_Obj * Tcl_DbNewObj(CONST char *file, int line)
127}
128declare 28 generic {
129    Tcl_Obj * Tcl_DbNewStringObj(CONST char *bytes, int length,
130	    CONST char *file, int line)
131}
132declare 29 generic {
133    Tcl_Obj * Tcl_DuplicateObj(Tcl_Obj *objPtr)
134}
135declare 30 generic {
136    void TclFreeObj(Tcl_Obj *objPtr)
137}
138declare 31 generic {
139    int Tcl_GetBoolean(Tcl_Interp *interp, CONST char *str, int *boolPtr)
140}
141declare 32 generic {
142    int Tcl_GetBooleanFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
143	    int *boolPtr)
144}
145declare 33 generic {
146    unsigned char * Tcl_GetByteArrayFromObj(Tcl_Obj *objPtr, int *lengthPtr)
147}
148declare 34 generic {
149    int Tcl_GetDouble(Tcl_Interp *interp, CONST char *str, double *doublePtr)
150}
151declare 35 generic {
152    int Tcl_GetDoubleFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
153	    double *doublePtr)
154}
155declare 36 generic {
156    int Tcl_GetIndexFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
157	    CONST84 char **tablePtr, CONST char *msg, int flags, int *indexPtr)
158}
159declare 37 generic {
160    int Tcl_GetInt(Tcl_Interp *interp, CONST char *str, int *intPtr)
161}
162declare 38 generic {
163    int Tcl_GetIntFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr, int *intPtr)
164}
165declare 39 generic {
166    int Tcl_GetLongFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr, long *longPtr)
167}
168declare 40 generic {
169    Tcl_ObjType * Tcl_GetObjType(CONST char *typeName)
170}
171declare 41 generic {
172    char * Tcl_GetStringFromObj(Tcl_Obj *objPtr, int *lengthPtr)
173}
174declare 42 generic {
175    void Tcl_InvalidateStringRep(Tcl_Obj *objPtr)
176}
177declare 43 generic {
178    int Tcl_ListObjAppendList(Tcl_Interp *interp, Tcl_Obj *listPtr,
179	    Tcl_Obj *elemListPtr)
180}
181declare 44 generic {
182    int Tcl_ListObjAppendElement(Tcl_Interp *interp, Tcl_Obj *listPtr,
183	    Tcl_Obj *objPtr)
184}
185declare 45 generic {
186    int Tcl_ListObjGetElements(Tcl_Interp *interp, Tcl_Obj *listPtr,
187	    int *objcPtr, Tcl_Obj ***objvPtr)
188}
189declare 46 generic {
190    int Tcl_ListObjIndex(Tcl_Interp *interp, Tcl_Obj *listPtr, int index,
191	    Tcl_Obj **objPtrPtr)
192}
193declare 47 generic {
194    int Tcl_ListObjLength(Tcl_Interp *interp, Tcl_Obj *listPtr,
195	    int *lengthPtr)
196}
197declare 48 generic {
198    int Tcl_ListObjReplace(Tcl_Interp *interp, Tcl_Obj *listPtr, int first,
199	    int count, int objc, Tcl_Obj *CONST objv[])
200}
201declare 49 generic {
202    Tcl_Obj *Tcl_NewBooleanObj(int boolValue)
203}
204declare 50 generic {
205    Tcl_Obj *Tcl_NewByteArrayObj(CONST unsigned char* bytes, int length)
206}
207declare 51 generic {
208    Tcl_Obj * Tcl_NewDoubleObj(double doubleValue)
209}
210declare 52 generic {
211    Tcl_Obj * Tcl_NewIntObj(int intValue)
212}
213declare 53 generic {
214    Tcl_Obj * Tcl_NewListObj(int objc, Tcl_Obj *CONST objv[])
215}
216declare 54 generic {
217    Tcl_Obj * Tcl_NewLongObj(long longValue)
218}
219declare 55 generic {
220    Tcl_Obj * Tcl_NewObj(void)
221}
222declare 56 generic {
223    Tcl_Obj *Tcl_NewStringObj(CONST char *bytes, int length)
224}
225declare 57 generic {
226    void Tcl_SetBooleanObj(Tcl_Obj *objPtr, int boolValue)
227}
228declare 58 generic {
229    unsigned char * Tcl_SetByteArrayLength(Tcl_Obj *objPtr, int length)
230}
231declare 59 generic {
232    void Tcl_SetByteArrayObj(Tcl_Obj *objPtr, CONST unsigned char *bytes,
233	    int length)
234}
235declare 60 generic {
236    void Tcl_SetDoubleObj(Tcl_Obj *objPtr, double doubleValue)
237}
238declare 61 generic {
239    void Tcl_SetIntObj(Tcl_Obj *objPtr, int intValue)
240}
241declare 62 generic {
242    void Tcl_SetListObj(Tcl_Obj *objPtr, int objc, Tcl_Obj *CONST objv[])
243}
244declare 63 generic {
245    void Tcl_SetLongObj(Tcl_Obj *objPtr, long longValue)
246}
247declare 64 generic {
248    void Tcl_SetObjLength(Tcl_Obj *objPtr, int length)
249}
250declare 65 generic {
251    void Tcl_SetStringObj(Tcl_Obj* objPtr, CONST char* bytes, int length)
252}
253declare 66 generic {
254    void Tcl_AddErrorInfo(Tcl_Interp *interp, CONST char *message)
255}
256declare 67 generic {
257    void Tcl_AddObjErrorInfo(Tcl_Interp *interp, CONST char *message,
258	    int length)
259}
260declare 68 generic {
261    void Tcl_AllowExceptions(Tcl_Interp *interp)
262}
263declare 69 generic {
264    void Tcl_AppendElement(Tcl_Interp *interp, CONST char *string)
265}
266declare 70 generic {
267    void Tcl_AppendResult(Tcl_Interp *interp, ...)
268}
269declare 71 generic {
270    Tcl_AsyncHandler Tcl_AsyncCreate(Tcl_AsyncProc *proc,
271	    ClientData clientData)
272}
273declare 72 generic {
274    void Tcl_AsyncDelete(Tcl_AsyncHandler async)
275}
276declare 73 generic {
277    int Tcl_AsyncInvoke(Tcl_Interp *interp, int code)
278}
279declare 74 generic {
280    void Tcl_AsyncMark(Tcl_AsyncHandler async)
281}
282declare 75 generic {
283    int Tcl_AsyncReady(void)
284}
285declare 76 generic {
286    void Tcl_BackgroundError(Tcl_Interp *interp)
287}
288declare 77 generic {
289    char Tcl_Backslash(CONST char *src, int *readPtr)
290}
291declare 78 generic {
292    int Tcl_BadChannelOption(Tcl_Interp *interp, CONST char *optionName,
293	    CONST char *optionList)
294}
295declare 79 generic {
296    void Tcl_CallWhenDeleted(Tcl_Interp *interp, Tcl_InterpDeleteProc *proc,
297	    ClientData clientData)
298}
299declare 80 generic {
300    void Tcl_CancelIdleCall(Tcl_IdleProc *idleProc, ClientData clientData)
301}
302declare 81 generic {
303    int Tcl_Close(Tcl_Interp *interp, Tcl_Channel chan)
304}
305declare 82 generic {
306    int Tcl_CommandComplete(CONST char *cmd)
307}
308declare 83 generic {
309    char * Tcl_Concat(int argc, CONST84 char * CONST *argv)
310}
311declare 84 generic {
312    int Tcl_ConvertElement(CONST char *src, char *dst, int flags)
313}
314declare 85 generic {
315    int Tcl_ConvertCountedElement(CONST char *src, int length, char *dst,
316	    int flags)
317}
318declare 86 generic {
319    int Tcl_CreateAlias(Tcl_Interp *slave, CONST char *slaveCmd,
320	    Tcl_Interp *target, CONST char *targetCmd, int argc,
321	    CONST84 char * CONST *argv)
322}
323declare 87 generic {
324    int Tcl_CreateAliasObj(Tcl_Interp *slave, CONST char *slaveCmd,
325	    Tcl_Interp *target, CONST char *targetCmd, int objc,
326	    Tcl_Obj *CONST objv[])
327}
328declare 88 generic {
329    Tcl_Channel Tcl_CreateChannel(Tcl_ChannelType *typePtr,
330	    CONST char *chanName, ClientData instanceData, int mask)
331}
332declare 89 generic {
333    void Tcl_CreateChannelHandler(Tcl_Channel chan, int mask,
334	    Tcl_ChannelProc *proc, ClientData clientData)
335}
336declare 90 generic {
337    void Tcl_CreateCloseHandler(Tcl_Channel chan, Tcl_CloseProc *proc,
338	    ClientData clientData)
339}
340declare 91 generic {
341    Tcl_Command Tcl_CreateCommand(Tcl_Interp *interp, CONST char *cmdName,
342	    Tcl_CmdProc *proc, ClientData clientData,
343	    Tcl_CmdDeleteProc *deleteProc)
344}
345declare 92 generic {
346    void Tcl_CreateEventSource(Tcl_EventSetupProc *setupProc,
347	    Tcl_EventCheckProc *checkProc, ClientData clientData)
348}
349declare 93 generic {
350    void Tcl_CreateExitHandler(Tcl_ExitProc *proc, ClientData clientData)
351}
352declare 94 generic {
353    Tcl_Interp * Tcl_CreateInterp(void)
354}
355declare 95 generic {
356    void Tcl_CreateMathFunc(Tcl_Interp *interp, CONST char *name,
357	    int numArgs, Tcl_ValueType *argTypes, 
358	    Tcl_MathProc *proc, ClientData clientData)
359}
360declare 96 generic {
361    Tcl_Command Tcl_CreateObjCommand(Tcl_Interp *interp,
362	    CONST char *cmdName,
363	    Tcl_ObjCmdProc *proc, ClientData clientData,
364	    Tcl_CmdDeleteProc *deleteProc)
365}
366declare 97 generic {
367    Tcl_Interp * Tcl_CreateSlave(Tcl_Interp *interp, CONST char *slaveName,
368	    int isSafe)
369}
370declare 98 generic {
371    Tcl_TimerToken Tcl_CreateTimerHandler(int milliseconds,
372	    Tcl_TimerProc *proc, ClientData clientData)
373}
374declare 99 generic {
375    Tcl_Trace Tcl_CreateTrace(Tcl_Interp *interp, int level,
376	    Tcl_CmdTraceProc *proc, ClientData clientData)
377}
378declare 100 generic {
379    void Tcl_DeleteAssocData(Tcl_Interp *interp, CONST char *name)
380}
381declare 101 generic {
382    void Tcl_DeleteChannelHandler(Tcl_Channel chan, Tcl_ChannelProc *proc,
383	    ClientData clientData)
384}
385declare 102 generic {
386    void Tcl_DeleteCloseHandler(Tcl_Channel chan, Tcl_CloseProc *proc,
387	    ClientData clientData)
388}
389declare 103 generic {
390    int Tcl_DeleteCommand(Tcl_Interp *interp, CONST char *cmdName)
391}
392declare 104 generic {
393    int Tcl_DeleteCommandFromToken(Tcl_Interp *interp, Tcl_Command command)
394}
395declare 105 generic {
396    void Tcl_DeleteEvents(Tcl_EventDeleteProc *proc, ClientData clientData)
397}
398declare 106 generic {
399    void Tcl_DeleteEventSource(Tcl_EventSetupProc *setupProc,
400	    Tcl_EventCheckProc *checkProc, ClientData clientData)
401}
402declare 107 generic {
403    void Tcl_DeleteExitHandler(Tcl_ExitProc *proc, ClientData clientData)
404}
405declare 108 generic {
406    void Tcl_DeleteHashEntry(Tcl_HashEntry *entryPtr)
407}
408declare 109 generic {
409    void Tcl_DeleteHashTable(Tcl_HashTable *tablePtr)
410}
411declare 110 generic {
412    void Tcl_DeleteInterp(Tcl_Interp *interp)
413}
414declare 111 {unix win} {
415    void Tcl_DetachPids(int numPids, Tcl_Pid *pidPtr)
416}
417declare 112 generic {
418    void Tcl_DeleteTimerHandler(Tcl_TimerToken token)
419}
420declare 113 generic {
421    void Tcl_DeleteTrace(Tcl_Interp *interp, Tcl_Trace trace)
422}
423declare 114 generic {
424    void Tcl_DontCallWhenDeleted(Tcl_Interp *interp,
425	    Tcl_InterpDeleteProc *proc, ClientData clientData)
426}
427declare 115 generic {
428    int Tcl_DoOneEvent(int flags)
429}
430declare 116 generic {
431    void Tcl_DoWhenIdle(Tcl_IdleProc *proc, ClientData clientData)
432}
433declare 117 generic {
434    char * Tcl_DStringAppend(Tcl_DString *dsPtr, CONST char *str, int length)
435}
436declare 118 generic {
437    char * Tcl_DStringAppendElement(Tcl_DString *dsPtr, CONST char *string)
438}
439declare 119 generic {
440    void Tcl_DStringEndSublist(Tcl_DString *dsPtr)
441}
442declare 120 generic {
443    void Tcl_DStringFree(Tcl_DString *dsPtr)
444}
445declare 121 generic {
446    void Tcl_DStringGetResult(Tcl_Interp *interp, Tcl_DString *dsPtr)
447}
448declare 122 generic {
449    void Tcl_DStringInit(Tcl_DString *dsPtr)
450}
451declare 123 generic {
452    void Tcl_DStringResult(Tcl_Interp *interp, Tcl_DString *dsPtr)
453}
454declare 124 generic {
455    void Tcl_DStringSetLength(Tcl_DString *dsPtr, int length)
456}
457declare 125 generic {
458    void Tcl_DStringStartSublist(Tcl_DString *dsPtr)
459}
460declare 126 generic {
461    int Tcl_Eof(Tcl_Channel chan)
462}
463declare 127 generic {
464    CONST84_RETURN char * Tcl_ErrnoId(void)
465}
466declare 128 generic {
467    CONST84_RETURN char * Tcl_ErrnoMsg(int err)
468}
469declare 129 generic {
470    int Tcl_Eval(Tcl_Interp *interp, CONST char *string)
471}
472# This is obsolete, use Tcl_FSEvalFile
473declare 130 generic {
474    int Tcl_EvalFile(Tcl_Interp *interp, CONST char *fileName)
475}
476declare 131 generic {
477    int Tcl_EvalObj(Tcl_Interp *interp, Tcl_Obj *objPtr)
478}
479declare 132 generic {
480    void Tcl_EventuallyFree(ClientData clientData, Tcl_FreeProc *freeProc)
481}
482declare 133 generic {
483    void Tcl_Exit(int status)
484}
485declare 134 generic {
486    int Tcl_ExposeCommand(Tcl_Interp *interp, CONST char *hiddenCmdToken,
487	    CONST char *cmdName)
488}
489declare 135 generic {
490    int Tcl_ExprBoolean(Tcl_Interp *interp, CONST char *str, int *ptr)
491}
492declare 136 generic {
493    int Tcl_ExprBooleanObj(Tcl_Interp *interp, Tcl_Obj *objPtr, int *ptr)
494}
495declare 137 generic {
496    int Tcl_ExprDouble(Tcl_Interp *interp, CONST char *str, double *ptr)
497}
498declare 138 generic {
499    int Tcl_ExprDoubleObj(Tcl_Interp *interp, Tcl_Obj *objPtr, double *ptr)
500}
501declare 139 generic {
502    int Tcl_ExprLong(Tcl_Interp *interp, CONST char *str, long *ptr)
503}
504declare 140 generic {
505    int Tcl_ExprLongObj(Tcl_Interp *interp, Tcl_Obj *objPtr, long *ptr)
506}
507declare 141 generic {
508    int Tcl_ExprObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
509	    Tcl_Obj **resultPtrPtr)
510}
511declare 142 generic {
512    int Tcl_ExprString(Tcl_Interp *interp, CONST char *string)
513}
514declare 143 generic {
515    void Tcl_Finalize(void)
516}
517declare 144 generic {
518    void Tcl_FindExecutable(CONST char *argv0)
519}
520declare 145 generic {
521    Tcl_HashEntry * Tcl_FirstHashEntry(Tcl_HashTable *tablePtr,
522	    Tcl_HashSearch *searchPtr)
523}
524declare 146 generic {
525    int Tcl_Flush(Tcl_Channel chan)
526}
527declare 147 generic {
528    void Tcl_FreeResult(Tcl_Interp *interp)
529}
530declare 148 generic {
531    int Tcl_GetAlias(Tcl_Interp *interp, CONST char *slaveCmd,
532	    Tcl_Interp **targetInterpPtr, CONST84 char **targetCmdPtr,
533	    int *argcPtr, CONST84 char ***argvPtr)
534}
535declare 149 generic {
536    int Tcl_GetAliasObj(Tcl_Interp *interp, CONST char *slaveCmd,
537	    Tcl_Interp **targetInterpPtr, CONST84 char **targetCmdPtr,
538	    int *objcPtr, Tcl_Obj ***objv)
539}
540declare 150 generic {
541    ClientData Tcl_GetAssocData(Tcl_Interp *interp, CONST char *name,
542	    Tcl_InterpDeleteProc **procPtr)
543}
544declare 151 generic {
545    Tcl_Channel Tcl_GetChannel(Tcl_Interp *interp, CONST char *chanName,
546	    int *modePtr)
547}
548declare 152 generic {
549    int Tcl_GetChannelBufferSize(Tcl_Channel chan)
550}
551declare 153 generic {
552    int Tcl_GetChannelHandle(Tcl_Channel chan, int direction,
553	    ClientData *handlePtr)
554}
555declare 154 generic {
556    ClientData Tcl_GetChannelInstanceData(Tcl_Channel chan)
557}
558declare 155 generic {
559    int Tcl_GetChannelMode(Tcl_Channel chan)
560}
561declare 156 generic {
562    CONST84_RETURN char * Tcl_GetChannelName(Tcl_Channel chan)
563}
564declare 157 generic {
565    int Tcl_GetChannelOption(Tcl_Interp *interp, Tcl_Channel chan,
566	    CONST char *optionName, Tcl_DString *dsPtr)
567}
568declare 158 generic {
569    Tcl_ChannelType * Tcl_GetChannelType(Tcl_Channel chan)
570}
571declare 159 generic {
572    int Tcl_GetCommandInfo(Tcl_Interp *interp, CONST char *cmdName,
573	    Tcl_CmdInfo *infoPtr)
574}
575declare 160 generic {
576    CONST84_RETURN char * Tcl_GetCommandName(Tcl_Interp *interp,
577	    Tcl_Command command)
578}
579declare 161 generic {
580    int Tcl_GetErrno(void)
581}
582declare 162 generic {
583    CONST84_RETURN char * Tcl_GetHostName(void)
584}
585declare 163 generic {
586    int Tcl_GetInterpPath(Tcl_Interp *askInterp, Tcl_Interp *slaveInterp)
587}
588declare 164 generic {
589    Tcl_Interp * Tcl_GetMaster(Tcl_Interp *interp)
590}
591declare 165 generic {
592    CONST char * Tcl_GetNameOfExecutable(void)
593}
594declare 166 generic {
595    Tcl_Obj * Tcl_GetObjResult(Tcl_Interp *interp)
596}
597
598# Tcl_GetOpenFile is only available on unix, but it is a part of the old
599# generic interface, so we inlcude it here for compatibility reasons.
600
601declare 167 unix {
602    int Tcl_GetOpenFile(Tcl_Interp *interp, CONST char *str, int forWriting,
603	    int checkUsage, ClientData *filePtr)
604}
605# Obsolete.  Should now use Tcl_FSGetPathType which is objectified
606# and therefore usually faster.
607declare 168 generic {
608    Tcl_PathType Tcl_GetPathType(CONST char *path)
609}
610declare 169 generic {
611    int Tcl_Gets(Tcl_Channel chan, Tcl_DString *dsPtr)
612}
613declare 170 generic {
614    int Tcl_GetsObj(Tcl_Channel chan, Tcl_Obj *objPtr)
615}
616declare 171 generic {
617    int Tcl_GetServiceMode(void)
618}
619declare 172 generic {
620    Tcl_Interp * Tcl_GetSlave(Tcl_Interp *interp, CONST char *slaveName)
621}
622declare 173 generic {
623    Tcl_Channel Tcl_GetStdChannel(int type)
624}
625declare 174 generic {
626    CONST84_RETURN char * Tcl_GetStringResult(Tcl_Interp *interp)
627}
628declare 175 generic {
629    CONST84_RETURN char * Tcl_GetVar(Tcl_Interp *interp, CONST char *varName,
630	    int flags)
631}
632declare 176 generic {
633    CONST84_RETURN char * Tcl_GetVar2(Tcl_Interp *interp, CONST char *part1,
634	    CONST char *part2, int flags)
635}
636declare 177 generic {
637    int Tcl_GlobalEval(Tcl_Interp *interp, CONST char *command)
638}
639declare 178 generic {
640    int Tcl_GlobalEvalObj(Tcl_Interp *interp, Tcl_Obj *objPtr)
641}
642declare 179 generic {
643    int Tcl_HideCommand(Tcl_Interp *interp, CONST char *cmdName,
644	    CONST char *hiddenCmdToken)
645}
646declare 180 generic {
647    int Tcl_Init(Tcl_Interp *interp)
648}
649declare 181 generic {
650    void Tcl_InitHashTable(Tcl_HashTable *tablePtr, int keyType)
651}
652declare 182 generic {
653    int Tcl_InputBlocked(Tcl_Channel chan)
654}
655declare 183 generic {
656    int Tcl_InputBuffered(Tcl_Channel chan)
657}
658declare 184 generic {
659    int Tcl_InterpDeleted(Tcl_Interp *interp)
660}
661declare 185 generic {
662    int Tcl_IsSafe(Tcl_Interp *interp)
663}
664# Obsolete, use Tcl_FSJoinPath
665declare 186 generic {
666    char * Tcl_JoinPath(int argc, CONST84 char * CONST *argv,
667	    Tcl_DString *resultPtr)
668}
669declare 187 generic {
670    int Tcl_LinkVar(Tcl_Interp *interp, CONST char *varName, char *addr,
671	    int type)
672}
673
674# This slot is reserved for use by the plus patch:
675#  declare 188 generic {
676#      Tcl_MainLoop
677#  }
678
679declare 189 generic {
680    Tcl_Channel Tcl_MakeFileChannel(ClientData handle, int mode)
681}
682declare 190 generic {
683    int Tcl_MakeSafe(Tcl_Interp *interp)
684}
685declare 191 generic {
686    Tcl_Channel Tcl_MakeTcpClientChannel(ClientData tcpSocket)
687}
688declare 192 generic {
689    char * Tcl_Merge(int argc, CONST84 char * CONST *argv)
690}
691declare 193 generic {
692    Tcl_HashEntry * Tcl_NextHashEntry(Tcl_HashSearch *searchPtr)
693}
694declare 194 generic {
695    void Tcl_NotifyChannel(Tcl_Channel channel, int mask)
696}
697declare 195 generic {
698    Tcl_Obj * Tcl_ObjGetVar2(Tcl_Interp *interp, Tcl_Obj *part1Ptr,
699	    Tcl_Obj *part2Ptr, int flags)
700}
701declare 196 generic {
702    Tcl_Obj * Tcl_ObjSetVar2(Tcl_Interp *interp, Tcl_Obj *part1Ptr,
703	    Tcl_Obj *part2Ptr, Tcl_Obj *newValuePtr, int flags)
704}
705declare 197 {unix win} {
706    Tcl_Channel Tcl_OpenCommandChannel(Tcl_Interp *interp, int argc,
707	    CONST84 char **argv, int flags)
708}
709# This is obsolete, use Tcl_FSOpenFileChannel
710declare 198 generic {
711    Tcl_Channel Tcl_OpenFileChannel(Tcl_Interp *interp, CONST char *fileName,
712	    CONST char *modeString, int permissions)
713}
714declare 199 generic {
715    Tcl_Channel Tcl_OpenTcpClient(Tcl_Interp *interp, int port,
716	    CONST char *address, CONST char *myaddr, int myport, int async)
717}
718declare 200 generic {
719    Tcl_Channel Tcl_OpenTcpServer(Tcl_Interp *interp, int port,
720	    CONST char *host, Tcl_TcpAcceptProc *acceptProc,
721	    ClientData callbackData)
722}
723declare 201 generic {
724    void Tcl_Preserve(ClientData data)
725}
726declare 202 generic {
727    void Tcl_PrintDouble(Tcl_Interp *interp, double value, char *dst)
728}
729declare 203 generic {
730    int Tcl_PutEnv(CONST char *string)
731}
732declare 204 generic {
733    CONST84_RETURN char * Tcl_PosixError(Tcl_Interp *interp)
734}
735declare 205 generic {
736    void Tcl_QueueEvent(Tcl_Event *evPtr, Tcl_QueuePosition position)
737}
738declare 206 generic {
739    int Tcl_Read(Tcl_Channel chan, char *bufPtr, int toRead)
740}
741declare 207 {unix win} {
742    void Tcl_ReapDetachedProcs(void)
743}
744declare 208 generic {
745    int Tcl_RecordAndEval(Tcl_Interp *interp, CONST char *cmd, int flags)
746}
747declare 209 generic {
748    int Tcl_RecordAndEvalObj(Tcl_Interp *interp, Tcl_Obj *cmdPtr, int flags)
749}
750declare 210 generic {
751    void Tcl_RegisterChannel(Tcl_Interp *interp, Tcl_Channel chan)
752}
753declare 211 generic {
754    void Tcl_RegisterObjType(Tcl_ObjType *typePtr)
755}
756declare 212 generic {
757    Tcl_RegExp Tcl_RegExpCompile(Tcl_Interp *interp, CONST char *string)
758}
759declare 213 generic {
760    int Tcl_RegExpExec(Tcl_Interp *interp, Tcl_RegExp regexp,
761	    CONST char *str, CONST char *start)
762}
763declare 214 generic {
764    int Tcl_RegExpMatch(Tcl_Interp *interp, CONST char *str,
765	    CONST char *pattern)
766}
767declare 215 generic {
768    void Tcl_RegExpRange(Tcl_RegExp regexp, int index,
769	    CONST84 char **startPtr, CONST84 char **endPtr)
770}
771declare 216 generic {
772    void Tcl_Release(ClientData clientData)
773}
774declare 217 generic {
775    void Tcl_ResetResult(Tcl_Interp *interp)
776}
777declare 218 generic {
778    int Tcl_ScanElement(CONST char *str, int *flagPtr)
779}
780declare 219 generic {
781    int Tcl_ScanCountedElement(CONST char *str, int length, int *flagPtr)
782}
783# Obsolete
784declare 220 generic {
785    int Tcl_SeekOld(Tcl_Channel chan, int offset, int mode)
786}
787declare 221 generic {
788    int Tcl_ServiceAll(void)
789}
790declare 222 generic {
791    int Tcl_ServiceEvent(int flags)
792}
793declare 223 generic {
794    void Tcl_SetAssocData(Tcl_Interp *interp, CONST char *name,
795	    Tcl_InterpDeleteProc *proc, ClientData clientData)
796}
797declare 224 generic {
798    void Tcl_SetChannelBufferSize(Tcl_Channel chan, int sz)
799}
800declare 225 generic {
801    int Tcl_SetChannelOption(Tcl_Interp *interp, Tcl_Channel chan,
802	    CONST char *optionName, CONST char *newValue)
803}
804declare 226 generic {
805    int Tcl_SetCommandInfo(Tcl_Interp *interp, CONST char *cmdName,
806	    CONST Tcl_CmdInfo *infoPtr)
807}
808declare 227 generic {
809    void Tcl_SetErrno(int err)
810}
811declare 228 generic {
812    void Tcl_SetErrorCode(Tcl_Interp *interp, ...)
813}
814declare 229 generic {
815    void Tcl_SetMaxBlockTime(Tcl_Time *timePtr)
816}
817declare 230 generic {
818    void Tcl_SetPanicProc(Tcl_PanicProc *panicProc)
819}
820declare 231 generic {
821    int Tcl_SetRecursionLimit(Tcl_Interp *interp, int depth)
822}
823declare 232 generic {
824    void Tcl_SetResult(Tcl_Interp *interp, char *str,
825	    Tcl_FreeProc *freeProc)
826}
827declare 233 generic {
828    int Tcl_SetServiceMode(int mode)
829}
830declare 234 generic {
831    void Tcl_SetObjErrorCode(Tcl_Interp *interp, Tcl_Obj *errorObjPtr)
832}
833declare 235 generic {
834    void Tcl_SetObjResult(Tcl_Interp *interp, Tcl_Obj *resultObjPtr)
835}
836declare 236 generic {
837    void Tcl_SetStdChannel(Tcl_Channel channel, int type)
838}
839declare 237 generic {
840    CONST84_RETURN char * Tcl_SetVar(Tcl_Interp *interp, CONST char *varName,
841	    CONST char *newValue, int flags)
842}
843declare 238 generic {
844    CONST84_RETURN char * Tcl_SetVar2(Tcl_Interp *interp, CONST char *part1,
845	    CONST char *part2, CONST char *newValue, int flags)
846}
847declare 239 generic {
848    CONST84_RETURN char * Tcl_SignalId(int sig)
849}
850declare 240 generic {
851    CONST84_RETURN char * Tcl_SignalMsg(int sig)
852}
853declare 241 generic {
854    void Tcl_SourceRCFile(Tcl_Interp *interp)
855}
856declare 242 generic {
857    int Tcl_SplitList(Tcl_Interp *interp, CONST char *listStr, int *argcPtr,
858	    CONST84 char ***argvPtr)
859}
860# Obsolete, use Tcl_FSSplitPath
861declare 243 generic {
862    void Tcl_SplitPath(CONST char *path, int *argcPtr, CONST84 char ***argvPtr)
863}
864declare 244 generic {
865    void Tcl_StaticPackage(Tcl_Interp *interp, CONST char *pkgName,
866	    Tcl_PackageInitProc *initProc, Tcl_PackageInitProc *safeInitProc)
867}
868declare 245 generic {
869    int Tcl_StringMatch(CONST char *str, CONST char *pattern)
870}
871# Obsolete
872declare 246 generic {
873    int Tcl_TellOld(Tcl_Channel chan)
874}
875declare 247 generic {
876    int Tcl_TraceVar(Tcl_Interp *interp, CONST char *varName, int flags,
877	    Tcl_VarTraceProc *proc, ClientData clientData)
878}
879declare 248 generic {
880    int Tcl_TraceVar2(Tcl_Interp *interp, CONST char *part1, CONST char *part2,
881	    int flags, Tcl_VarTraceProc *proc, ClientData clientData)
882}
883declare 249 generic {
884    char * Tcl_TranslateFileName(Tcl_Interp *interp, CONST char *name,
885	    Tcl_DString *bufferPtr)
886}
887declare 250 generic {
888    int Tcl_Ungets(Tcl_Channel chan, CONST char *str, int len, int atHead)
889}
890declare 251 generic {
891    void Tcl_UnlinkVar(Tcl_Interp *interp, CONST char *varName)
892}
893declare 252 generic {
894    int Tcl_UnregisterChannel(Tcl_Interp *interp, Tcl_Channel chan)
895}
896declare 253 generic {
897    int Tcl_UnsetVar(Tcl_Interp *interp, CONST char *varName, int flags)
898}
899declare 254 generic {
900    int Tcl_UnsetVar2(Tcl_Interp *interp, CONST char *part1, CONST char *part2,
901	    int flags)
902}
903declare 255 generic {
904    void Tcl_UntraceVar(Tcl_Interp *interp, CONST char *varName, int flags,
905	    Tcl_VarTraceProc *proc, ClientData clientData)
906}
907declare 256 generic {
908    void Tcl_UntraceVar2(Tcl_Interp *interp, CONST char *part1,
909	    CONST char *part2, int flags, Tcl_VarTraceProc *proc,
910	    ClientData clientData)
911}
912declare 257 generic {
913    void Tcl_UpdateLinkedVar(Tcl_Interp *interp, CONST char *varName)
914}
915declare 258 generic {
916    int Tcl_UpVar(Tcl_Interp *interp, CONST char *frameName,
917	    CONST char *varName, CONST char *localName, int flags)
918}
919declare 259 generic {
920    int Tcl_UpVar2(Tcl_Interp *interp, CONST char *frameName, CONST char *part1,
921	    CONST char *part2, CONST char *localName, int flags)
922}
923declare 260 generic {
924    int Tcl_VarEval(Tcl_Interp *interp, ...)
925}
926declare 261 generic {
927    ClientData Tcl_VarTraceInfo(Tcl_Interp *interp, CONST char *varName,
928	    int flags, Tcl_VarTraceProc *procPtr, ClientData prevClientData)
929}
930declare 262 generic {
931    ClientData Tcl_VarTraceInfo2(Tcl_Interp *interp, CONST char *part1,
932	    CONST char *part2, int flags, Tcl_VarTraceProc *procPtr,
933	    ClientData prevClientData)
934}
935declare 263 generic {
936    int Tcl_Write(Tcl_Channel chan, CONST char *s, int slen)
937}
938declare 264 generic {
939    void Tcl_WrongNumArgs(Tcl_Interp *interp, int objc,
940	    Tcl_Obj *CONST objv[], CONST char *message)
941}
942declare 265 generic {
943    int Tcl_DumpActiveMemory(CONST char *fileName)
944}
945declare 266 generic {
946    void Tcl_ValidateAllMemory(CONST char *file, int line)
947}
948
949declare 267 generic {
950    void Tcl_AppendResultVA(Tcl_Interp *interp, va_list argList)
951}
952declare 268 generic {
953    void Tcl_AppendStringsToObjVA(Tcl_Obj *objPtr, va_list argList)
954}
955declare 269 generic {
956    CONST84_RETURN char * Tcl_HashStats(Tcl_HashTable *tablePtr)
957}
958declare 270 generic {
959    CONST84_RETURN char * Tcl_ParseVar(Tcl_Interp *interp, CONST char *str,
960	    CONST84 char **termPtr)
961}
962declare 271 generic {
963    CONST84_RETURN char * Tcl_PkgPresent(Tcl_Interp *interp, CONST char *name,
964	    CONST char *version, int exact)
965}
966declare 272 generic {
967    CONST84_RETURN char * Tcl_PkgPresentEx(Tcl_Interp *interp, CONST char *name,
968	    CONST char *version, int exact, ClientData *clientDataPtr)
969}
970declare 273 generic {
971    int Tcl_PkgProvide(Tcl_Interp *interp, CONST char *name, 
972	    CONST char *version)
973}
974
975# TIP #268: The internally used new Require function is in slot
976#           573. Assuming TCL_TIP268 was activated.
977
978declare 274 generic {
979    CONST84_RETURN char * Tcl_PkgRequire(Tcl_Interp *interp, CONST char *name, 
980	    CONST char *version, int exact)
981}
982declare 275 generic {
983    void Tcl_SetErrorCodeVA(Tcl_Interp *interp, va_list argList)
984}
985declare 276 generic {
986    int  Tcl_VarEvalVA(Tcl_Interp *interp, va_list argList)
987}
988declare 277 generic {
989    Tcl_Pid Tcl_WaitPid(Tcl_Pid pid, int *statPtr, int options)
990}
991declare 278 generic {
992    void Tcl_PanicVA(CONST char *format, va_list argList)
993}
994declare 279 generic {
995    void Tcl_GetVersion(int *major, int *minor, int *patchLevel, int *type)
996}
997declare 280 generic {
998    void Tcl_InitMemory(Tcl_Interp *interp)
999}
1000
1001# Andreas Kupries <a.kupries@westend.com>, 03/21/1999
1002# "Trf-Patch for filtering channels"
1003#
1004# C-Level API for (un)stacking of channels. This allows the introduction
1005# of filtering channels with relatively little changes to the core.
1006# This patch was created in cooperation with Jan Nijtmans j.nijtmans@chello.nl
1007# and is therefore part of his plus-patches too.
1008#
1009# It would have been possible to place the following definitions according
1010# to the alphabetical order used elsewhere in this file, but I decided
1011# against that to ease the maintenance of the patch across new tcl versions
1012# (patch usually has no problems to integrate the patch file for the last
1013# version into the new one).
1014
1015declare 281 generic {
1016    Tcl_Channel Tcl_StackChannel(Tcl_Interp *interp, Tcl_ChannelType *typePtr,
1017	    ClientData instanceData, int mask, Tcl_Channel prevChan)
1018}
1019declare 282 generic {
1020    int Tcl_UnstackChannel(Tcl_Interp *interp, Tcl_Channel chan)
1021}
1022declare 283 generic {
1023    Tcl_Channel Tcl_GetStackedChannel(Tcl_Channel chan)
1024}
1025
1026# 284 was reserved, but added in 8.4a2
1027declare 284 generic {
1028    void Tcl_SetMainLoop(Tcl_MainLoopProc *proc)
1029}
1030
1031# Reserved for future use (8.0.x vs. 8.1)
1032#  declare 285 generic {
1033#  }
1034
1035
1036# Added in 8.1:
1037
1038declare 286 generic {
1039    void Tcl_AppendObjToObj(Tcl_Obj *objPtr, Tcl_Obj *appendObjPtr)
1040}
1041declare 287 generic {
1042    Tcl_Encoding Tcl_CreateEncoding(Tcl_EncodingType *typePtr)
1043}
1044declare 288 generic {
1045    void Tcl_CreateThreadExitHandler(Tcl_ExitProc *proc, ClientData clientData)
1046}
1047declare 289 generic {
1048    void Tcl_DeleteThreadExitHandler(Tcl_ExitProc *proc, ClientData clientData)
1049}
1050declare 290 generic {
1051    void Tcl_DiscardResult(Tcl_SavedResult *statePtr)
1052}
1053declare 291 generic {
1054    int Tcl_EvalEx(Tcl_Interp *interp, CONST char *script, int numBytes,
1055	    int flags)
1056}
1057declare 292 generic {
1058    int Tcl_EvalObjv(Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[],
1059	    int flags)
1060}
1061declare 293 generic {
1062    int Tcl_EvalObjEx(Tcl_Interp *interp, Tcl_Obj *objPtr, int flags)
1063}
1064declare 294 generic {
1065    void Tcl_ExitThread(int status)
1066}
1067declare 295 generic {
1068    int Tcl_ExternalToUtf(Tcl_Interp *interp, Tcl_Encoding encoding,
1069	    CONST char *src, int srcLen, int flags,
1070	    Tcl_EncodingState *statePtr, char *dst, int dstLen,
1071	    int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr)
1072}
1073declare 296 generic {
1074    char * Tcl_ExternalToUtfDString(Tcl_Encoding encoding,
1075	    CONST char *src, int srcLen, Tcl_DString *dsPtr)
1076}
1077declare 297 generic {
1078    void Tcl_FinalizeThread(void)
1079}
1080declare 298 generic {
1081    void Tcl_FinalizeNotifier(ClientData clientData)
1082}
1083declare 299 generic {
1084    void Tcl_FreeEncoding(Tcl_Encoding encoding)
1085}
1086declare 300 generic {
1087    Tcl_ThreadId Tcl_GetCurrentThread(void)
1088}
1089declare 301 generic {
1090    Tcl_Encoding Tcl_GetEncoding(Tcl_Interp *interp, CONST char *name)
1091}
1092declare 302 generic {
1093    CONST84_RETURN char * Tcl_GetEncodingName(Tcl_Encoding encoding)
1094}
1095declare 303 generic {
1096    void Tcl_GetEncodingNames(Tcl_Interp *interp)
1097}
1098declare 304 generic {
1099    int Tcl_GetIndexFromObjStruct(Tcl_Interp *interp, Tcl_Obj *objPtr,
1100	    CONST VOID *tablePtr, int offset, CONST char *msg, int flags,
1101	    int *indexPtr)
1102}
1103declare 305 generic {
1104    VOID * Tcl_GetThreadData(Tcl_ThreadDataKey *keyPtr, int size)
1105}
1106declare 306 generic {
1107    Tcl_Obj * Tcl_GetVar2Ex(Tcl_Interp *interp, CONST char *part1,
1108	    CONST char *part2, int flags)
1109}
1110declare 307 generic {
1111    ClientData Tcl_InitNotifier(void)
1112}
1113declare 308 generic {
1114    void Tcl_MutexLock(Tcl_Mutex *mutexPtr)
1115}
1116declare 309 generic {
1117    void Tcl_MutexUnlock(Tcl_Mutex *mutexPtr)
1118}
1119declare 310 generic {
1120    void Tcl_ConditionNotify(Tcl_Condition *condPtr)
1121}
1122declare 311 generic {
1123    void Tcl_ConditionWait(Tcl_Condition *condPtr, Tcl_Mutex *mutexPtr,
1124	    Tcl_Time *timePtr)
1125}
1126declare 312 generic {
1127    int Tcl_NumUtfChars(CONST char *src, int len)
1128}
1129declare 313 generic {
1130    int Tcl_ReadChars(Tcl_Channel channel, Tcl_Obj *objPtr, int charsToRead,
1131	    int appendFlag)
1132}
1133declare 314 generic {
1134    void Tcl_RestoreResult(Tcl_Interp *interp, Tcl_SavedResult *statePtr)
1135}
1136declare 315 generic {
1137    void Tcl_SaveResult(Tcl_Interp *interp, Tcl_SavedResult *statePtr)
1138}
1139declare 316 generic {
1140    int Tcl_SetSystemEncoding(Tcl_Interp *interp, CONST char *name)
1141}
1142declare 317 generic {
1143    Tcl_Obj * Tcl_SetVar2Ex(Tcl_Interp *interp, CONST char *part1, 
1144            CONST char *part2, Tcl_Obj *newValuePtr, int flags)
1145}
1146declare 318 generic {
1147    void Tcl_ThreadAlert(Tcl_ThreadId threadId)
1148}
1149declare 319 generic {
1150    void Tcl_ThreadQueueEvent(Tcl_ThreadId threadId, Tcl_Event* evPtr,
1151	    Tcl_QueuePosition position)
1152}
1153declare 320 generic {
1154    Tcl_UniChar Tcl_UniCharAtIndex(CONST char *src, int index)
1155}
1156declare 321 generic {
1157    Tcl_UniChar Tcl_UniCharToLower(int ch)
1158}
1159declare 322 generic {
1160    Tcl_UniChar Tcl_UniCharToTitle(int ch)
1161}
1162declare 323 generic {
1163    Tcl_UniChar Tcl_UniCharToUpper(int ch)
1164}
1165declare 324 generic {
1166    int Tcl_UniCharToUtf(int ch, char *buf)
1167}
1168declare 325 generic {
1169    CONST84_RETURN char * Tcl_UtfAtIndex(CONST char *src, int index)
1170}
1171declare 326 generic {
1172    int Tcl_UtfCharComplete(CONST char *src, int len)
1173}
1174declare 327 generic {
1175    int Tcl_UtfBackslash(CONST char *src, int *readPtr, char *dst)
1176}
1177declare 328 generic {
1178    CONST84_RETURN char * Tcl_UtfFindFirst(CONST char *src, int ch)
1179}
1180declare 329 generic {
1181    CONST84_RETURN char * Tcl_UtfFindLast(CONST char *src, int ch)
1182}
1183declare 330 generic {
1184    CONST84_RETURN char * Tcl_UtfNext(CONST char *src)
1185}
1186declare 331 generic {
1187    CONST84_RETURN char * Tcl_UtfPrev(CONST char *src, CONST char *start)
1188}
1189declare 332 generic {
1190    int Tcl_UtfToExternal(Tcl_Interp *interp, Tcl_Encoding encoding,
1191	    CONST char *src, int srcLen, int flags,
1192	    Tcl_EncodingState *statePtr, char *dst, int dstLen,
1193	    int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr)
1194}
1195declare 333 generic {
1196    char * Tcl_UtfToExternalDString(Tcl_Encoding encoding,
1197	    CONST char *src, int srcLen, Tcl_DString *dsPtr)
1198}
1199declare 334 generic {
1200    int Tcl_UtfToLower(char *src)
1201}
1202declare 335 generic {
1203    int Tcl_UtfToTitle(char *src)
1204}
1205declare 336 generic {
1206    int Tcl_UtfToUniChar(CONST char *src, Tcl_UniChar *chPtr)
1207}
1208declare 337 generic {
1209    int Tcl_UtfToUpper(char *src)
1210}
1211declare 338 generic {
1212    int Tcl_WriteChars(Tcl_Channel chan, CONST char *src, int srcLen)
1213}
1214declare 339 generic {
1215    int Tcl_WriteObj(Tcl_Channel chan, Tcl_Obj *objPtr)
1216}
1217declare 340 generic {
1218    char * Tcl_GetString(Tcl_Obj *objPtr)
1219}
1220declare 341 generic {
1221    CONST84_RETURN char * Tcl_GetDefaultEncodingDir(void)
1222}
1223declare 342 generic {
1224    void Tcl_SetDefaultEncodingDir(CONST char *path)
1225}
1226declare 343 generic {
1227    void Tcl_AlertNotifier(ClientData clientData)
1228}
1229declare 344 generic {
1230    void Tcl_ServiceModeHook(int mode)
1231}
1232declare 345 generic {
1233    int Tcl_UniCharIsAlnum(int ch)
1234}
1235declare 346 generic {
1236    int Tcl_UniCharIsAlpha(int ch)
1237}
1238declare 347 generic {
1239    int Tcl_UniCharIsDigit(int ch)
1240}
1241declare 348 generic {
1242    int Tcl_UniCharIsLower(int ch)
1243}
1244declare 349 generic {
1245    int Tcl_UniCharIsSpace(int ch)
1246}
1247declare 350 generic {
1248    int Tcl_UniCharIsUpper(int ch)
1249}
1250declare 351 generic {
1251    int Tcl_UniCharIsWordChar(int ch)
1252}
1253declare 352 generic {
1254    int Tcl_UniCharLen(CONST Tcl_UniChar *str)
1255}
1256declare 353 generic {
1257    int Tcl_UniCharNcmp(CONST Tcl_UniChar *cs, CONST Tcl_UniChar *ct,
1258	    unsigned long n)
1259}
1260declare 354 generic {
1261    char * Tcl_UniCharToUtfDString(CONST Tcl_UniChar *string,
1262	    int numChars, Tcl_DString *dsPtr)
1263}
1264declare 355 generic {
1265    Tcl_UniChar * Tcl_UtfToUniCharDString(CONST char *string,
1266	    int length, Tcl_DString *dsPtr)
1267}
1268declare 356 generic {
1269    Tcl_RegExp Tcl_GetRegExpFromObj(Tcl_Interp *interp, Tcl_Obj *patObj,
1270	    int flags)
1271}
1272
1273declare 357 generic {
1274    Tcl_Obj *Tcl_EvalTokens(Tcl_Interp *interp, Tcl_Token *tokenPtr,
1275	    int count)
1276}
1277declare 358 generic {
1278    void Tcl_FreeParse(Tcl_Parse *parsePtr)
1279}
1280declare 359 generic {
1281    void Tcl_LogCommandInfo(Tcl_Interp *interp, CONST char *script,
1282	    CONST char *command, int length)
1283}
1284declare 360 generic {
1285    int Tcl_ParseBraces(Tcl_Interp *interp, CONST char *string, int numBytes,
1286	    Tcl_Parse *parsePtr, int append, CONST84 char **termPtr)
1287}
1288declare 361 generic {
1289    int Tcl_ParseCommand(Tcl_Interp *interp, CONST char *string, int numBytes,
1290	    int nested, Tcl_Parse *parsePtr)
1291}
1292declare 362 generic {
1293    int Tcl_ParseExpr(Tcl_Interp *interp, CONST char *string, int numBytes,
1294	    Tcl_Parse *parsePtr)	 
1295}
1296declare 363 generic {
1297    int Tcl_ParseQuotedString(Tcl_Interp *interp, CONST char *string,
1298	    int numBytes, Tcl_Parse *parsePtr, int append,
1299	    CONST84 char **termPtr)
1300}
1301declare 364 generic {
1302    int Tcl_ParseVarName(Tcl_Interp *interp, CONST char *string, int numBytes,
1303	    Tcl_Parse *parsePtr, int append)
1304}
1305# These 4 functions are obsolete, use Tcl_FSGetCwd, Tcl_FSChdir,
1306# Tcl_FSAccess and Tcl_FSStat
1307declare 365 generic {
1308    char *Tcl_GetCwd(Tcl_Interp *interp, Tcl_DString *cwdPtr)
1309}
1310declare 366 generic {
1311   int Tcl_Chdir(CONST char *dirName)
1312}
1313declare 367 generic {
1314   int Tcl_Access(CONST char *path, int mode)
1315}
1316declare 368 generic {
1317    int Tcl_Stat(CONST char *path, struct stat *bufPtr)
1318}
1319declare 369 generic {
1320    int Tcl_UtfNcmp(CONST char *s1, CONST char *s2, unsigned long n)
1321}
1322declare 370 generic {
1323    int Tcl_UtfNcasecmp(CONST char *s1, CONST char *s2, unsigned long n)
1324}
1325declare 371 generic {
1326    int Tcl_StringCaseMatch(CONST char *str, CONST char *pattern, int nocase)
1327}
1328declare 372 generic {
1329    int Tcl_UniCharIsControl(int ch)
1330}
1331declare 373 generic {
1332    int Tcl_UniCharIsGraph(int ch)
1333}
1334declare 374 generic {
1335    int Tcl_UniCharIsPrint(int ch)
1336}
1337declare 375 generic {
1338    int Tcl_UniCharIsPunct(int ch)
1339}
1340declare 376 generic {
1341    int Tcl_RegExpExecObj(Tcl_Interp *interp, Tcl_RegExp regexp,
1342	    Tcl_Obj *objPtr, int offset, int nmatches, int flags)
1343}
1344declare 377 generic {
1345    void Tcl_RegExpGetInfo(Tcl_RegExp regexp, Tcl_RegExpInfo *infoPtr)
1346}
1347declare 378 generic {
1348    Tcl_Obj * Tcl_NewUnicodeObj(CONST Tcl_UniChar *unicode, int numChars)
1349}
1350declare 379 generic {
1351    void Tcl_SetUnicodeObj(Tcl_Obj *objPtr, CONST Tcl_UniChar *unicode,
1352	    int numChars)
1353}
1354declare 380 generic {
1355    int Tcl_GetCharLength(Tcl_Obj *objPtr)
1356}
1357declare 381 generic {
1358    Tcl_UniChar Tcl_GetUniChar(Tcl_Obj *objPtr, int index)
1359}
1360declare 382 generic {
1361    Tcl_UniChar * Tcl_GetUnicode(Tcl_Obj *objPtr)
1362}
1363declare 383 generic {
1364    Tcl_Obj * Tcl_GetRange(Tcl_Obj *objPtr, int first, int last)
1365}
1366declare 384 generic {
1367    void Tcl_AppendUnicodeToObj(Tcl_Obj *objPtr, CONST Tcl_UniChar *unicode,
1368	    int length)
1369}
1370declare 385 generic {
1371    int Tcl_RegExpMatchObj(Tcl_Interp *interp, Tcl_Obj *stringObj,
1372	    Tcl_Obj *patternObj)
1373}
1374declare 386 generic {
1375    void Tcl_SetNotifier(Tcl_NotifierProcs *notifierProcPtr)
1376}
1377declare 387 generic {
1378    Tcl_Mutex * Tcl_GetAllocMutex(void)
1379}
1380declare 388 generic {
1381    int Tcl_GetChannelNames(Tcl_Interp *interp)
1382}
1383declare 389 generic {
1384    int Tcl_GetChannelNamesEx(Tcl_Interp *interp, CONST char *pattern)
1385}
1386declare 390 generic {
1387    int Tcl_ProcObjCmd(ClientData clientData, Tcl_Interp *interp,
1388	    int objc, Tcl_Obj *CONST objv[])
1389}
1390declare 391 generic {
1391    void Tcl_ConditionFinalize(Tcl_Condition *condPtr)
1392}
1393declare 392 generic {
1394    void Tcl_MutexFinalize(Tcl_Mutex *mutex)
1395}
1396declare 393 generic {
1397    int Tcl_CreateThread(Tcl_ThreadId *idPtr, Tcl_ThreadCreateProc proc,
1398	    ClientData clientData, int stackSize, int flags)
1399}
1400
1401# Introduced in 8.3.2
1402declare 394 generic {
1403    int Tcl_ReadRaw(Tcl_Channel chan, char *dst, int bytesToRead)
1404}
1405declare 395 generic {
1406    int Tcl_WriteRaw(Tcl_Channel chan, CONST char *src, int srcLen)
1407}
1408declare 396 generic {
1409    Tcl_Channel Tcl_GetTopChannel(Tcl_Channel chan)
1410}
1411declare 397 generic {
1412    int Tcl_ChannelBuffered(Tcl_Channel chan)
1413}
1414declare 398 generic {
1415    CONST84_RETURN char * Tcl_ChannelName(Tcl_ChannelType *chanTypePtr)
1416}
1417declare 399 generic {
1418    Tcl_ChannelTypeVersion Tcl_ChannelVersion(Tcl_ChannelType *chanTypePtr)
1419}
1420declare 400 generic {
1421    Tcl_DriverBlockModeProc * Tcl_ChannelBlockModeProc(Tcl_ChannelType
1422	    *chanTypePtr)
1423}
1424declare 401 generic {
1425    Tcl_DriverCloseProc * Tcl_ChannelCloseProc(Tcl_ChannelType *chanTypePtr)
1426}
1427declare 402 generic {
1428    Tcl_DriverClose2Proc * Tcl_ChannelClose2Proc(Tcl_ChannelType *chanTypePtr)
1429}
1430declare 403 generic {
1431    Tcl_DriverInputProc * Tcl_ChannelInputProc(Tcl_ChannelType *chanTypePtr)
1432}
1433declare 404 generic {
1434    Tcl_DriverOutputProc * Tcl_ChannelOutputProc(Tcl_ChannelType *chanTypePtr)
1435}
1436declare 405 generic {
1437    Tcl_DriverSeekProc * Tcl_ChannelSeekProc(Tcl_ChannelType *chanTypePtr)
1438}
1439declare 406 generic {
1440    Tcl_DriverSetOptionProc * Tcl_ChannelSetOptionProc(Tcl_ChannelType
1441	    *chanTypePtr)
1442}
1443declare 407 generic {
1444    Tcl_DriverGetOptionProc * Tcl_ChannelGetOptionProc(Tcl_ChannelType
1445	    *chanTypePtr)
1446}
1447declare 408 generic {
1448    Tcl_DriverWatchProc * Tcl_ChannelWatchProc(Tcl_ChannelType *chanTypePtr)
1449}
1450declare 409 generic {
1451    Tcl_DriverGetHandleProc * Tcl_ChannelGetHandleProc(Tcl_ChannelType
1452	    *chanTypePtr)
1453}
1454declare 410 generic {
1455    Tcl_DriverFlushProc * Tcl_ChannelFlushProc(Tcl_ChannelType *chanTypePtr)
1456}
1457declare 411 generic {
1458    Tcl_DriverHandlerProc * Tcl_ChannelHandlerProc(Tcl_ChannelType
1459	    *chanTypePtr)
1460}
1461
1462# Introduced in 8.4a2
1463declare 412 generic {
1464    int Tcl_JoinThread(Tcl_ThreadId threadId, int* result)
1465}
1466declare 413 generic {
1467    int Tcl_IsChannelShared(Tcl_Channel channel)
1468}
1469declare 414 generic {
1470    int Tcl_IsChannelRegistered(Tcl_Interp* interp, Tcl_Channel channel)
1471}
1472declare 415 generic {
1473    void Tcl_CutChannel(Tcl_Channel channel)
1474}
1475declare 416 generic {
1476    void Tcl_SpliceChannel(Tcl_Channel channel)
1477}
1478declare 417 generic {
1479    void Tcl_ClearChannelHandlers(Tcl_Channel channel)
1480}
1481declare 418 generic {
1482    int Tcl_IsChannelExisting(CONST char* channelName)
1483}
1484
1485declare 419 generic {
1486    int Tcl_UniCharNcasecmp(CONST Tcl_UniChar *cs, CONST Tcl_UniChar *ct,
1487	    unsigned long n)
1488}
1489declare 420 generic {
1490    int Tcl_UniCharCaseMatch(CONST Tcl_UniChar *ustr,
1491	    CONST Tcl_UniChar *pattern, int nocase)
1492}
1493
1494declare 421 generic {
1495    Tcl_HashEntry *Tcl_FindHashEntry(Tcl_HashTable *tablePtr, CONST char *key)
1496}
1497
1498declare 422 generic {
1499    Tcl_HashEntry *Tcl_CreateHashEntry(Tcl_HashTable *tablePtr,
1500	    CONST char *key, int *newPtr)
1501}
1502
1503declare 423 generic {
1504    void Tcl_InitCustomHashTable(Tcl_HashTable *tablePtr, int keyType,
1505	    Tcl_HashKeyType *typePtr)
1506}
1507
1508declare 424 generic {
1509    void Tcl_InitObjHashTable(Tcl_HashTable *tablePtr)
1510}
1511declare 425 generic {
1512    ClientData Tcl_CommandTraceInfo(Tcl_Interp *interp, CONST char *varName,
1513	    int flags, Tcl_CommandTraceProc *procPtr,
1514	    ClientData prevClientData)
1515}
1516declare 426 generic {
1517    int Tcl_TraceCommand(Tcl_Interp *interp, CONST char *varName, int flags,
1518	    Tcl_CommandTraceProc *proc, ClientData clientData)
1519}
1520declare 427 generic {
1521    void Tcl_UntraceCommand(Tcl_Interp *interp, CONST char *varName,
1522	    int flags, Tcl_CommandTraceProc *proc, ClientData clientData)
1523}
1524declare 428 generic {
1525    char * Tcl_AttemptAlloc(unsigned int size)
1526}
1527declare 429 generic {
1528    char * Tcl_AttemptDbCkalloc(unsigned int size, CONST char *file, int line)
1529}
1530declare 430 generic {
1531    char * Tcl_AttemptRealloc(char *ptr, unsigned int size)
1532}
1533declare 431 generic {
1534    char * Tcl_AttemptDbCkrealloc(char *ptr, unsigned int size,
1535	    CONST char *file, int line)
1536}
1537declare 432 generic {
1538    int Tcl_AttemptSetObjLength(Tcl_Obj *objPtr, int length)
1539}
1540declare 433 generic {
1541    Tcl_ThreadId Tcl_GetChannelThread(Tcl_Channel channel)
1542}
1543# introduced in 8.4a3
1544declare 434 generic {
1545    Tcl_UniChar * Tcl_GetUnicodeFromObj(Tcl_Obj *objPtr, int *lengthPtr)
1546}
1547declare 435 generic {
1548    int Tcl_GetMathFuncInfo(Tcl_Interp *interp, CONST char *name,
1549	    int *numArgsPtr, Tcl_ValueType **argTypesPtr,
1550	    Tcl_MathProc **procPtr, ClientData *clientDataPtr)
1551}
1552declare 436 generic {
1553    Tcl_Obj * Tcl_ListMathFuncs(Tcl_Interp *interp, CONST char *pattern)
1554}
1555declare 437 generic {
1556    Tcl_Obj * Tcl_SubstObj(Tcl_Interp *interp, Tcl_Obj *objPtr, int flags)
1557}
1558declare 438 generic {
1559    int Tcl_DetachChannel(Tcl_Interp* interp, Tcl_Channel channel)
1560}
1561declare 439 generic {
1562    int Tcl_IsStandardChannel(Tcl_Channel channel)
1563}
1564# New functions due to TIP#17
1565declare 440 generic {
1566    int	Tcl_FSCopyFile(Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr)
1567}
1568declare 441 generic {
1569    int	Tcl_FSCopyDirectory(Tcl_Obj *srcPathPtr,
1570	    Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr)
1571}
1572declare 442 generic {
1573    int	Tcl_FSCreateDirectory(Tcl_Obj *pathPtr)
1574}
1575declare 443 generic {
1576    int	Tcl_FSDeleteFile(Tcl_Obj *pathPtr)
1577}
1578declare 444 generic {
1579    int	Tcl_FSLoadFile(Tcl_Interp * interp,
1580	    Tcl_Obj *pathPtr, CONST char * sym1, CONST char * sym2,
1581	    Tcl_PackageInitProc ** proc1Ptr,
1582	    Tcl_PackageInitProc ** proc2Ptr,
1583	    Tcl_LoadHandle * handlePtr,
1584	    Tcl_FSUnloadFileProc **unloadProcPtr)
1585}
1586declare 445 generic {
1587    int	Tcl_FSMatchInDirectory(Tcl_Interp *interp, Tcl_Obj *result,
1588	    Tcl_Obj *pathPtr, CONST char *pattern, Tcl_GlobTypeData *types)
1589}
1590declare 446 generic {
1591    Tcl_Obj * Tcl_FSLink(Tcl_Obj *pathPtr, Tcl_Obj *toPtr, int linkAction)
1592}
1593declare 447 generic {
1594    int Tcl_FSRemoveDirectory(Tcl_Obj *pathPtr,
1595	    int recursive, Tcl_Obj **errorPtr)
1596}
1597declare 448 generic {
1598    int	Tcl_FSRenameFile(Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr)
1599}
1600declare 449 generic {
1601    int	Tcl_FSLstat(Tcl_Obj *pathPtr, Tcl_StatBuf *buf)
1602}
1603declare 450 generic {
1604    int Tcl_FSUtime(Tcl_Obj *pathPtr, struct utimbuf *tval)
1605}
1606declare 451 generic {
1607    int Tcl_FSFileAttrsGet(Tcl_Interp *interp,
1608	    int index, Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef)
1609}
1610declare 452 generic {
1611    int Tcl_FSFileAttrsSet(Tcl_Interp *interp,
1612	    int index, Tcl_Obj *pathPtr, Tcl_Obj *objPtr)
1613}
1614declare 453 generic {
1615    CONST char ** Tcl_FSFileAttrStrings(Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef)
1616}
1617declare 454 generic {
1618    int Tcl_FSStat(Tcl_Obj *pathPtr, Tcl_StatBuf *buf)
1619}
1620declare 455 generic {
1621    int Tcl_FSAccess(Tcl_Obj *pathPtr, int mode)
1622}
1623declare 456 generic {
1624    Tcl_Channel Tcl_FSOpenFileChannel(Tcl_Interp *interp, Tcl_Obj *pathPtr,
1625	    CONST char *modeString, int permissions)
1626}
1627declare 457 generic {
1628    Tcl_Obj*  Tcl_FSGetCwd(Tcl_Interp *interp)
1629}
1630declare 458 generic {
1631    int Tcl_FSChdir(Tcl_Obj *pathPtr)
1632}
1633declare 459 generic {
1634    int Tcl_FSConvertToPathType(Tcl_Interp *interp, Tcl_Obj *pathPtr)
1635}
1636declare 460 generic {
1637    Tcl_Obj* Tcl_FSJoinPath(Tcl_Obj *listObj, int elements)
1638}
1639declare 461 generic {
1640    Tcl_Obj* Tcl_FSSplitPath(Tcl_Obj* pathPtr, int *lenPtr)
1641}
1642declare 462 generic {
1643    int Tcl_FSEqualPaths(Tcl_Obj* firstPtr, Tcl_Obj* secondPtr)
1644}
1645declare 463 generic {
1646    Tcl_Obj* Tcl_FSGetNormalizedPath(Tcl_Interp *interp, Tcl_Obj* pathObjPtr)
1647}
1648declare 464 generic {
1649    Tcl_Obj* Tcl_FSJoinToPath(Tcl_Obj *basePtr, int objc,
1650	    Tcl_Obj *CONST objv[])
1651}
1652declare 465 generic {
1653    ClientData Tcl_FSGetInternalRep(Tcl_Obj* pathObjPtr,
1654	    Tcl_Filesystem *fsPtr)
1655}
1656declare 466 generic {
1657    Tcl_Obj* Tcl_FSGetTranslatedPath(Tcl_Interp *interp, Tcl_Obj* pathPtr)
1658}
1659declare 467 generic {
1660    int Tcl_FSEvalFile(Tcl_Interp *interp, Tcl_Obj *fileName)
1661}
1662declare 468 generic {
1663    Tcl_Obj* Tcl_FSNewNativePath(Tcl_Filesystem* fromFilesystem,
1664	    ClientData clientData)
1665}
1666declare 469 generic {
1667    CONST char* Tcl_FSGetNativePath(Tcl_Obj* pathObjPtr)
1668}
1669declare 470 generic {
1670    Tcl_Obj* Tcl_FSFileSystemInfo(Tcl_Obj* pathObjPtr)
1671}
1672declare 471 generic {
1673    Tcl_Obj* Tcl_FSPathSeparator(Tcl_Obj* pathObjPtr)
1674}
1675declare 472 generic {
1676    Tcl_Obj* Tcl_FSListVolumes(void)
1677}
1678declare 473 generic {
1679    int Tcl_FSRegister(ClientData clientData, Tcl_Filesystem *fsPtr)
1680}
1681declare 474 generic {
1682    int Tcl_FSUnregister(Tcl_Filesystem *fsPtr)
1683}
1684declare 475 generic {
1685    ClientData Tcl_FSData(Tcl_Filesystem *fsPtr)
1686}
1687declare 476 generic {
1688    CONST char* Tcl_FSGetTranslatedStringPath(Tcl_Interp *interp,
1689	    Tcl_Obj* pathPtr)
1690}
1691declare 477 generic {
1692    Tcl_Filesystem* Tcl_FSGetFileSystemForPath(Tcl_Obj* pathObjPtr)
1693}
1694declare 478 generic {
1695    Tcl_PathType Tcl_FSGetPathType(Tcl_Obj *pathObjPtr)
1696}
1697# New function due to TIP#49
1698declare 479 generic {
1699    int Tcl_OutputBuffered(Tcl_Channel chan)
1700}
1701declare 480 generic {
1702    void Tcl_FSMountsChanged(Tcl_Filesystem *fsPtr)
1703}	  
1704# New function due to TIP#56
1705declare 481 generic {
1706    int Tcl_EvalTokensStandard(Tcl_Interp *interp, Tcl_Token *tokenPtr,
1707	    int count)
1708}
1709
1710# New export due to TIP#73 
1711declare 482 generic {
1712    void Tcl_GetTime(Tcl_Time* timeBuf)
1713}
1714
1715# New exports due to TIP#32
1716
1717declare 483 generic {
1718    Tcl_Trace Tcl_CreateObjTrace(Tcl_Interp* interp, int level, int flags,
1719	    Tcl_CmdObjTraceProc* objProc, ClientData clientData,
1720	    Tcl_CmdObjTraceDeleteProc* delProc)
1721}
1722declare 484 generic {
1723    int Tcl_GetCommandInfoFromToken(Tcl_Command token, Tcl_CmdInfo* infoPtr)
1724}
1725declare 485 generic {
1726    int Tcl_SetCommandInfoFromToken(Tcl_Command token,
1727	    CONST Tcl_CmdInfo* infoPtr)
1728}
1729
1730### New functions on 64-bit dev branch ###
1731declare 486 generic {
1732    Tcl_Obj * Tcl_DbNewWideIntObj(Tcl_WideInt wideValue,
1733	    CONST char *file, int line)
1734}
1735declare 487 generic {
1736    int Tcl_GetWideIntFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
1737	    Tcl_WideInt *widePtr)
1738}
1739declare 488 generic {
1740    Tcl_Obj * Tcl_NewWideIntObj(Tcl_WideInt wideValue)
1741}
1742declare 489 generic {
1743    void Tcl_SetWideIntObj(Tcl_Obj *objPtr, Tcl_WideInt wideValue)
1744}
1745declare 490 generic {
1746    Tcl_StatBuf * Tcl_AllocStatBuf(void)
1747}
1748declare 491 generic {
1749    Tcl_WideInt Tcl_Seek(Tcl_Channel chan, Tcl_WideInt offset, int mode)
1750}
1751declare 492 generic {
1752    Tcl_WideInt Tcl_Tell(Tcl_Channel chan)
1753}
1754
1755# New export due to TIP#91
1756declare 493 generic {
1757    Tcl_DriverWideSeekProc * Tcl_ChannelWideSeekProc(
1758	    Tcl_ChannelType *chanTypePtr)
1759}
1760
1761# Slots 494 to 553 are taken already by 8.5
1762# #111 - Dicts            (494 ... 504)
1763#  #59 - Config           (505)
1764# #139 - Namespace API    (506 ... 517)
1765# #137 - source -encoding (518)
1766# #121 - ExitProc         (519)
1767# #121 - Resource Limits  (520 ... 534)
1768# #226 - S/R Interp State (535 ... 537)
1769# #227 - S/G Return Opts  (538 ... 539)
1770# #235 - Ensemble C API   (540 ... 551)
1771# #233 - Virtualized Time (552 ... 553)
1772
1773# TIP#218 (Driver Thread Actions) davygrvy/akupries ChannelType ver 4
1774# These slots are used by 8.5 as well.
1775declare 554 generic {
1776    Tcl_DriverThreadActionProc *Tcl_ChannelThreadActionProc(Tcl_ChannelType *chanTypePtr)
1777}
1778
1779# Slots 555 to 572 are taken already by 8.5
1780# TIP #237: Arbitrary-prec Integers (555 ... 559)
1781# TIP #208: 'chan' Command          (560 ... 561)
1782# TIP #219: Channel Reflection      (562 ... 565)
1783# TIP #237: Add. bignum support     (566)
1784# TIP #181: 'namespace unknown' Cmd (567 ... 568)
1785# TIP #258: Enhanced Encodings API  (569 ... 572)
1786
1787# TIP#268: Extended version numbers and requirements.
1788#          The slot is present even if TCL_TIP268 is not activated.
1789
1790declare 573 generic {
1791    int Tcl_PkgRequireProc(Tcl_Interp *interp, CONST char *name, 
1792	    int objc, Tcl_Obj *CONST objv[], ClientData *clientDataPtr)
1793}
1794
1795##############################################################################
1796
1797# Define the platform specific public Tcl interface.  These functions are
1798# only available on the designated platform.
1799
1800interface tclPlat
1801
1802######################
1803# Windows declarations
1804
1805# Added in Tcl 8.1
1806
1807declare 0 win {
1808    TCHAR * Tcl_WinUtfToTChar(CONST char *str, int len, Tcl_DString *dsPtr)
1809}
1810declare 1 win {
1811    char * Tcl_WinTCharToUtf(CONST TCHAR *str, int len, Tcl_DString *dsPtr)
1812}
1813
1814##################
1815# Mac declarations
1816
1817# This is needed by the shells to handle Macintosh events.
1818 
1819declare 0 mac {
1820    void Tcl_MacSetEventProc(Tcl_MacConvertEventPtr procPtr)
1821}
1822
1823# These routines are useful for handling using scripts from resources 
1824# in the application shell
1825
1826declare 1 mac {
1827    char * Tcl_MacConvertTextResource(Handle resource)
1828}
1829declare 2 mac {
1830    int Tcl_MacEvalResource(Tcl_Interp *interp, CONST char *resourceName,
1831	    int resourceNumber, CONST char *fileName)
1832}
1833declare 3 mac {
1834    Handle Tcl_MacFindResource(Tcl_Interp *interp, long resourceType,
1835	    CONST char *resourceName, int resourceNumber,
1836	    CONST char *resFileRef, int * releaseIt)
1837}
1838
1839# These routines support the new OSType object type (i.e. the packed 4
1840# character type and creator codes).
1841
1842declare 4 mac {
1843    int Tcl_GetOSTypeFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
1844	    OSType *osTypePtr)
1845}
1846declare 5 mac {
1847    void Tcl_SetOSTypeObj(Tcl_Obj *objPtr, OSType osType)
1848}
1849declare 6 mac {
1850    Tcl_Obj * Tcl_NewOSTypeObj(OSType osType)
1851}
1852
1853# These are not in MSL 2.1.2, so we need to export them from the
1854# Tcl shared library.  They are found in the compat directory.
1855 
1856declare 7 mac {
1857    int strncasecmp(CONST char *s1, CONST char *s2, size_t n)
1858}
1859declare 8 mac {
1860    int strcasecmp(CONST char *s1, CONST char *s2)
1861}
1862
1863##################
1864# Mac OS X declarations
1865#
1866
1867declare 0 macosx {
1868    int Tcl_MacOSXOpenBundleResources(Tcl_Interp *interp,
1869	    CONST char *bundleName,
1870	    int hasResourceFile,
1871	    int maxPathLen,
1872	    char *libraryPath)
1873}
1874declare 1 macosx {
1875    int Tcl_MacOSXOpenVersionedBundleResources(Tcl_Interp *interp,
1876	    CONST char *bundleName,
1877	    CONST char *bundleVersion,
1878	    int hasResourceFile,
1879	    int maxPathLen,
1880	    char *libraryPath)
1881}
1882