1 /* expect_tcl.h - include file for using the expect library, libexpect.a
2 with Tcl (and optionally Tk)
3 
4 Written by: Don Libes, libes@cme.nist.gov, NIST, 12/3/90
5 
6 Design and implementation of this program was paid for by U.S. tax
7 dollars.  Therefore it is public domain.  However, the author and NIST
8 would appreciate credit if this program or parts of it are used.
9 
10 */
11 
12 #ifndef _EXPECT_TCL_H
13 #define _EXPECT_TCL_H
14 
15 #include <stdio.h>
16 #include "expect_comm.h"
17 
18 /*
19  * This is a convenience macro used to initialize a thread local storage ptr.
20  * Stolen from tclInt.h
21  */
22 #ifndef TCL_TSD_INIT
23 #define TCL_TSD_INIT(keyPtr)	(ThreadSpecificData *)Tcl_GetThreadData((keyPtr), sizeof(ThreadSpecificData))
24 #endif
25 
26 EXTERN int exp_cmdlinecmds;
27 EXTERN int exp_interactive;
28 EXTERN FILE *exp_cmdfile;
29 EXTERN char *exp_cmdfilename;
30 EXTERN int exp_getpid;	/* pid of Expect itself */
31 EXTERN int exp_buffer_command_input;
32 
33 EXTERN int exp_strict_write;
34 
35 EXTERN int exp_tcl_debugger_available;
36 
37 EXTERN Tcl_Interp *exp_interp;
38 
39 #define Exp_Init Expect_Init
40 EXTERN int	Expect_Init _ANSI_ARGS_((Tcl_Interp *));	/* for Tcl_AppInit apps */
41 EXTERN void	exp_parse_argv _ANSI_ARGS_((Tcl_Interp *,int argc,char **argv));
42 EXTERN int	exp_interpreter _ANSI_ARGS_((Tcl_Interp *,Tcl_Obj *));
43 EXTERN int	exp_interpret_cmdfile _ANSI_ARGS_((Tcl_Interp *,FILE *));
44 EXTERN int	exp_interpret_cmdfilename _ANSI_ARGS_((Tcl_Interp *,char *));
45 EXTERN void	exp_interpret_rcfiles _ANSI_ARGS_((Tcl_Interp *,int my_rc,int sys_rc));
46 
47 EXTERN char *	exp_cook _ANSI_ARGS_((char *s,int *len));
48 
49 EXTERN void	expCloseOnExec _ANSI_ARGS_((int));
50 
51 			/* app-specific exit handler */
52 EXTERN void	(*exp_app_exit)_ANSI_ARGS_((Tcl_Interp *));
53 EXTERN void	exp_exit_handlers _ANSI_ARGS_((ClientData));
54 
55 EXTERN void	exp_error _ANSI_ARGS_(TCL_VARARGS(Tcl_Interp *,interp));
56 
57 #endif /* _EXPECT_TCL_H */
58