]>
cvs.zerfleddert.de Git - micropolis/blob - src/tclx/src/tclxint.h
6a1dfee2f54a69a3a3eb62c55bf468adb2213e26
4 * Standard internal include file for Extended Tcl library..
5 *-----------------------------------------------------------------------------
6 * Copyright 1992 Karl Lehenbauer and Mark Diekhans.
8 * Permission to use, copy, modify, and distribute this software and its
9 * documentation for any purpose and without fee is hereby granted, provided
10 * that the above copyright notice appear in all copies. Karl Lehenbauer and
11 * Mark Diekhans make no representations about the suitability of this
12 * software for any purpose. It is provided "as is" without express or
14 *-----------------------------------------------------------------------------
15 * $Id: tclExtdInt.h,v 2.0 1992/10/16 04:51:27 markd Rel $
16 *-----------------------------------------------------------------------------
25 #include <sys/param.h>
29 #ifdef TCL_NEED_SYS_SELECT_H
30 # include "sys/select.h"
34 * If tclUnix.h has already included time.h, don't include it again, some
35 * systems don't #ifdef inside of the file. On some systems, undef
36 * CLK_TCK (defined in tclUnix.h) to avoid an annoying warning about
39 #ifdef TCL_NEED_TIME_H
41 # ifdef TCL_DUP_CLK_TCK
49 * Precompute milliseconds-per-tick, the " + CLK_TCK / 2" bit gets it to
50 * round off instead of truncate. Take care of defining CLK_TCK if its not
61 #define MS_PER_TICK ((1000 + CLK_TCK/2) / CLK_TCK)
64 * If tclUnix.h did not bring times.h, bring it in here.
67 # include <sys/times.h>
73 * On some systems this is not included by tclUnix.h.
77 * These should be take from an include file, but it got to be such a mess
78 * to get the include files right that they are here for good measure.
81 struct tm
*localtime ();
84 # define BITSPERBYTE 8
85 # define BITS(type) (BITSPERBYTE * (int)sizeof(type))
86 # define HIBITI ((unsigned int)(1 << BITS(int) - 1))
87 # define MAXINT ((int)(~HIBITI))
91 # define MININT (-MAXINT)-1
100 * Structure to hold a regular expression, plus a Boyer-Moore compiled
104 typedef struct regexp_t
{
109 typedef regexp_t
*regexp_pt
;
111 * Flags used by RegExpCompile:
113 #define REXP_NO_CASE 1 /* Do matching regardless of case */
114 #define REXP_BOTH_ALGORITHMS 2 /* Use boyer-moore along with regexp */
117 * Data structure to control a dynamic buffer. These buffers are primarly
118 * used for reading things from files, were the maximum size is not known
119 * in advance, and the buffer must grow. These are used in the case were
120 * the value is not to be returned as the interpreter result.
123 #define INIT_DYN_BUFFER_SIZE 256
125 typedef struct dynamicBuf_t
{
126 char buf
[INIT_DYN_BUFFER_SIZE
]; /* Initial buffer area. */
127 char *ptr
; /* Pointer to buffer area. */
128 int size
; /* Current size of buffer. */
129 int len
; /* Current string length (less '\0') */
133 * Used to return argument messages by most commands.
135 extern char *tclXWrongArgs
;
138 * Macros to do string compares. They pre-check the first character before
139 * checking of the strings are equal.
142 #define STREQU(str1, str2) \
143 (((str1) [0] == (str2) [0]) && (strcmp (str1, str2) == 0))
144 #define STRNEQU(str1, str2, cnt) \
145 (((str1) [0] == (str2) [0]) && (strncmp (str1, str2, cnt) == 0))
148 * Prototypes for utility procedures.
151 Tcl_DynBufInit
_ANSI_ARGS_((dynamicBuf_t
*dynBufPtr
));
154 Tcl_DynBufFree
_ANSI_ARGS_((dynamicBuf_t
*dynBufPtr
));
157 Tcl_DynBufReturn
_ANSI_ARGS_((Tcl_Interp
*interp
,
158 dynamicBuf_t
*dynBufPtr
));
161 Tcl_DynBufAppend
_ANSI_ARGS_((dynamicBuf_t
*dynBufPtr
,
165 Tcl_ExpandDynBuf
_ANSI_ARGS_((dynamicBuf_t
*dynBufPtr
,
169 Tcl_DynamicFgets
_ANSI_ARGS_((dynamicBuf_t
*dynBufPtr
,
174 Tcl_ConvertFileHandle
_ANSI_ARGS_((Tcl_Interp
*interp
,
178 Tcl_GetDate
_ANSI_ARGS_((char *p
,
183 Tcl_ProcessSignal
_ANSI_ARGS_((Tcl_Interp
*interp
,
187 Tcl_RegExpClean
_ANSI_ARGS_((regexp_pt regExpPtr
));
190 Tcl_RegExpCompile
_ANSI_ARGS_((Tcl_Interp
*interp
,
196 Tcl_RegExpExecute
_ANSI_ARGS_((Tcl_Interp
*interp
,
199 char *matchStrLower
));
204 Tcl_ReturnDouble
_ANSI_ARGS_((Tcl_Interp
*interp
,
208 Tcl_SetupFileEntry
_ANSI_ARGS_((Tcl_Interp
*interp
,
214 * Definitions required to initialize all extended commands. These are either
215 * the command executors or initialization routines that do the command
216 * initialization. The initialization routines are used when there is more
217 * to initializing the command that just binding the command name to the
218 * executor. Usually, this means initializing some command local data via
219 * the ClientData mechanism. The command executors should be declared to be of
220 * type `Tcl_CmdProc', but this blows up some compilers, so they are declared
221 * with an ANSI prototype.
228 Tcl_BsearchCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
234 Tcl_ChmodCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
237 Tcl_ChownCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
240 Tcl_ChgrpCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
246 Tcl_GetclockCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
249 Tcl_FmtclockCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
252 * from tclXcnvclock.c
255 Tcl_ConvertclockCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
261 Tcl_CommandloopCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
267 Tcl_InitDebug
_ANSI_ARGS_((Tcl_Interp
*interp
));
273 Tcl_DupCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
279 Tcl_FcntlCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
282 * from tclXfilecmds.c
285 Tcl_PipeCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
288 Tcl_CopyfileCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
291 Tcl_FstatCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
294 Tcl_LgetsCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
297 Tcl_FlockCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
300 Tcl_FunlockCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
303 * from tclXfilescan.c
306 Tcl_InitFilescan
_ANSI_ARGS_((Tcl_Interp
*interp
));
312 Tcl_AcosCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
315 Tcl_AsinCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
318 Tcl_AtanCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
321 Tcl_CosCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
324 Tcl_SinCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
327 Tcl_TanCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
330 Tcl_CoshCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
333 Tcl_SinhCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
336 Tcl_TanhCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
339 Tcl_ExpCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
342 Tcl_LogCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
345 Tcl_Log10Cmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
348 Tcl_SqrtCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
351 Tcl_FabsCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
354 Tcl_FloorCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
357 Tcl_CeilCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
360 Tcl_FmodCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
363 Tcl_PowCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
370 Tcl_EchoCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
373 Tcl_InfoxCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
376 Tcl_LoopCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
382 Tcl_IdCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
388 Tcl_KeyldelCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
391 Tcl_KeylgetCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
394 Tcl_KeylkeysCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
397 Tcl_KeylsetCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
403 Tcl_LvarpopCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
406 Tcl_LvarcatCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
409 Tcl_LvarpushCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
412 Tcl_LemptyCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
418 Tcl_MaxCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
421 Tcl_MinCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
424 Tcl_RandomCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
430 Tcl_InitMsgCat
_ANSI_ARGS_((Tcl_Interp
*interp
));
436 Tcl_ExeclCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
439 Tcl_ForkCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
442 Tcl_WaitCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
448 Tcl_InitProfile
_ANSI_ARGS_((Tcl_Interp
*interp
));
454 Tcl_SelectCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
460 Tcl_InitSignalHandling
_ANSI_ARGS_((Tcl_Interp
*interp
));
466 Tcl_CindexCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
469 Tcl_ClengthCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
472 Tcl_CrangeCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
475 Tcl_ReplicateCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
478 Tcl_TranslitCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
481 Tcl_CtypeCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
487 Tcl_Demand_loadCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
490 Tcl_LoadlibindexCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
493 * from tclXunixcmds.c
496 Tcl_AlarmCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
499 Tcl_SleepCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
502 Tcl_SystemCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
505 Tcl_TimesCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
508 Tcl_UmaskCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
511 Tcl_LinkCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
514 Tcl_UnlinkCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
517 Tcl_MkdirCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));
520 Tcl_RmdirCmd
_ANSI_ARGS_((ClientData
, Tcl_Interp
*, int, char**));