1 
2 /* NOTE:
3  *
4  * All the files in this directory are directly from the Tcl distribution
5  * with one exception:  the Tcl_InfoCmd has been deleted from tclCmdIL.c
6  * and the replacement is in the tksh directory.
7  */
8 
9 #define xxxcommandTable commandTable
10 #define xxxpatLengths patLengths
11 #define xxxregexps regexps
12 #define xxxpatterns patterns
13 #include "tkshlib.h"
14 typedef struct Command {
15     Tcl_HashEntry *hPtr;        /* Pointer to the hash table entry in
16                                  * interp->commandTable that refers to
17                                  * this command.  Used to get a command's
18                                  * name from its Tcl_Command handle. */
19     Tcl_CmdProc *proc;          /* Procedure to process command. */
20     ClientData clientData;      /* Arbitrary value to pass to proc. */
21     Tcl_CmdDeleteProc *deleteProc;
22                                 /* Procedure to invoke when deleting
23                                  * command. */
24     ClientData deleteData;      /* Arbitrary value to pass to deleteProc
25                                  * (usually the same as clientData). */
26 } Command;
27 
28 
29 #define MAX_MATH_ARGS 5
30 typedef struct MathFunc {
31     int numArgs;                /* Number of arguments for function. */
32     Tcl_ValueType argTypes[MAX_MATH_ARGS];
33                                 /* Acceptable types for each argument. */
34     Tcl_MathProc *proc;         /* Procedure that implements this function. */
35     ClientData clientData;      /* Additional argument to pass to the function
36                                  * when invoking it. */
37 } MathFunc;
38 
39 extern void             TclExprFloatError _ANSI_ARGS_((Tcl_Interp *interp,
40                             double value));
41 
42 #define EXPR_INITIALIZED        0x10
43 
44 #ifdef NO_FLOAT_H
45 #undef NO_FLOAT_H
46 #endif
47 
48 #ifdef NO_STDLIB_H
49 #undef NO_STDLIB_H
50 #endif
51 
52 #if 0
53 extern double strtod();
54 /* Bug in sprintf */
55 #ifdef sprintf
56 #undef sprintf
57 #endif
58 #endif
59 
60 /* Don't want to use sh_write */
61 #ifdef write
62 #undef write
63 #endif
64 
65 #define NSUBEXP  50
66 typedef struct regexp {
67 	char *startp[NSUBEXP];
68 	char *endp[NSUBEXP];
69 	char regstart;		/* Internal use only. */
70 	char reganch;		/* Internal use only. */
71 	char *regmust;		/* Internal use only. */
72 	int regmlen;		/* Internal use only. */
73 	char program[1];	/* Unwarranted chumminess with compiler. */
74 } regexp;
75 
76 EXTERN regexp *TclRegComp _ANSI_ARGS_((char *exp));
77 EXTERN int TclRegExec _ANSI_ARGS_((regexp *prog, char *string, char *start));
78 EXTERN void TclRegSub _ANSI_ARGS_((regexp *prog, char *source, char *dest));
79 EXTERN void TclRegError _ANSI_ARGS_((char *msg));
80 EXTERN char *TclGetRegError _ANSI_ARGS_((void));
81