CC -PIC -E -DHCLONLY -I. -I/usr/prac/se/hush/experimental/include  -target sun4 -c  hush-init.c
# 1 "hush-init.c" 
# 1 "/usr/prac/se/hush/experimental/include/hush/hush.h" 1



# 1 "/usr/prac/se/hush/experimental/include/hush/version.h" 1









# 12 "/usr/prac/se/hush/experimental/include/hush/version.h" 


# 16 "/usr/prac/se/hush/experimental/include/hush/version.h" 


# 20 "/usr/prac/se/hush/experimental/include/hush/version.h" 



# 5 "/usr/prac/se/hush/experimental/include/hush/hush.h" 2

# 1 "/usr/prac/se/hush/experimental/include/adt/assert.h" 1















# 18 "/usr/prac/se/hush/experimental/include/adt/assert.h" 

# 21 "/usr/prac/se/hush/experimental/include/adt/assert.h" 












# 40 "/usr/prac/se/hush/experimental/include/adt/assert.h" 


# 44 "/usr/prac/se/hush/experimental/include/adt/assert.h" 

# 47 "/usr/prac/se/hush/experimental/include/adt/assert.h" 

# 50 "/usr/prac/se/hush/experimental/include/adt/assert.h" 




# 1 "/usr/local/lang/CC/include/sysent.h" 1






# 1 "/usr/local/lang/CC/include/sys/types.h" 1


























# 1 "/usr/local/lang/CC/include/sys/stdtypes.h" 1




















typedef	int		sigset_t;	

typedef	unsigned int	speed_t;	
typedef	unsigned long	tcflag_t;	
typedef	unsigned char	cc_t;		
typedef	int		pid_t;		

typedef	unsigned short	mode_t;		
typedef	short		nlink_t;	

typedef	long		clock_t;	
typedef	long		time_t;		

typedef	int		______size_t;		
typedef int		ptrdiff_t;	

typedef	unsigned short	wchar_t;	


 



typedef unsigned int size_t;


# 28 "/usr/local/lang/CC/include/sys/types.h" 2


# 1 "/usr/include/sys/sysmacros.h" 1



















# 31 "/usr/local/lang/CC/include/sys/types.h" 2




typedef	unsigned char	u_char;
typedef	unsigned short	u_short;
typedef	unsigned int	u_int;
typedef	unsigned long	u_long;
typedef	unsigned short	ushort;		
typedef	unsigned int	uint;		


# 48 "/usr/local/lang/CC/include/sys/types.h" 

# 54 "/usr/local/lang/CC/include/sys/types.h" 


typedef	struct  _physadr_t { int r[1]; } *physadr_t;
typedef	struct label_t {
	int	val[2];
} label_t;

# 66 "/usr/local/lang/CC/include/sys/types.h" 

typedef	struct	_quad_t { long val[2]; } quad_t;
typedef	long	daddr_t;
typedef	char *	caddr_t;
typedef	unsigned long	ino_t;
typedef	short	dev_t;
typedef	long	off_t;
typedef	unsigned short	uid_t;
typedef	unsigned short	gid_t;
typedef	long	key_t;
typedef	char *	addr_t;














typedef	long	fd_mask;


# 96 "/usr/local/lang/CC/include/sys/types.h" 





typedef	struct fd_set {
	fd_mask	fds_bits[(((256)+(( (sizeof (fd_mask) * 8))-1))/( (sizeof (fd_mask) * 8)))];
} fd_set;







# 124 "/usr/local/lang/CC/include/sys/types.h" 



 



extern "C" {
	void bzero(void*, int);
}




# 8 "/usr/local/lang/CC/include/sysent.h" 2



# 1 "/usr/local/lang/CC/include/sys/wait.h" 1






# 1 "/usr/local/lang/CC/include/sys/resource.h" 1






# 1 "/usr/local/lang/CC/include/sys/time.h" 1





# 8 "/usr/local/lang/CC/include/sys/time.h" 































struct timeval {
	long	tv_sec;		
	long	tv_usec;	
};

struct timezone {
	int	tz_minuteswest;	
	int	tz_dsttime;	
};


































struct	itimerval {
	struct	timeval it_interval;	
	struct	timeval it_value;	
};



# 1 "/usr/local/lang/CC/include/time.h" 1























# 1 "/usr/local/lang/CC/include/sys/stdtypes.h" 1


# 46 "/usr/local/lang/CC/include/sys/stdtypes.h" 

# 25 "/usr/local/lang/CC/include/time.h" 2



struct	tm {
	int	tm_sec;
	int	tm_min;
	int	tm_hour;
	int	tm_mday;
	int	tm_mon;
	int	tm_year;
	int	tm_wday;
	int	tm_yday;
	int	tm_isdst;
	char	*tm_zone;
	long	tm_gmtoff;
};

extern	struct tm *______gmtime(), *______localtime();
extern	char *______asctime(), *______ctime();
extern	void ______tzset(), ______tzsetwall();
extern  int ______dysize();
extern  time_t ______timelocal(), ______timegm();


 














extern "C" {
	 char *asctime(const struct tm*);
	 char *ctime(const long*);
	 struct tm *gmtime(const long*);
	 struct tm *localtime(const long*);
	long time(long*);
	void tzset();
	 char *timezone(int, int);
	int dysize(int);
	void tzsetwall();
	time_t timelocal(const struct tm *);
	time_t timegm(const struct tm *);
	int strftime(char *, int, const char *, const struct tm *);
	char *strptime(const char *, const char *, struct tm *);
}


# 90 "/usr/local/lang/CC/include/sys/time.h" 2



 














extern "C" {
	int adjtime(const timeval*, timeval*);
	int getitimer(int, itimerval*);
	int setitimer(int, const itimerval*, itimerval*);
	int gettimeofday(timeval*, struct timezone*);
	int settimeofday(const timeval*, const struct timezone*);
	int utimes(const char*, timeval tvp[2]);
	int select(int, fd_set*, fd_set*, fd_set*, const timeval*);
}


# 8 "/usr/local/lang/CC/include/sys/resource.h" 2
































struct	rusage {
	struct timeval ru_utime;	
	struct timeval ru_stime;	
	long	ru_maxrss;

	long	ru_ixrss;		
	long	ru_idrss;		
	long	ru_isrss;		
	long	ru_minflt;		
	long	ru_majflt;		
	long	ru_nswap;		
	long	ru_inblock;		
	long	ru_oublock;		
	long	ru_msgsnd;		
	long	ru_msgrcv;		
	long	ru_nsignals;		
	long	ru_nvcsw;		
	long	ru_nivcsw;		

};
















struct rlimit {
	int	rlim_cur;		
	int	rlim_max;		
};




 







extern "C" {
	int getpriority(int which, int who);
	int setpriority(int which, int who, int prio);
	int getrlimit(int resource, rlimit* rlp);
	int setrlimit(int resource, const rlimit* rlp);
	int getrusage(int, rusage*);
}


# 8 "/usr/local/lang/CC/include/sys/wait.h" 2

































union wait	{
	int	w_status;		
	


	struct {
# 51 "/usr/local/lang/CC/include/sys/wait.h" 


		unsigned short	w_Fill1:16;	
		unsigned short	w_Retcode:8;	
		unsigned short	w_Coredump:1;	
		unsigned short	w_Termsig:7;	

	} w_T;
	




	struct {
# 68 "/usr/local/lang/CC/include/sys/wait.h" 


		unsigned short	w_Fill2:16;	
		unsigned short	w_Stopsig:8;	
		unsigned short	w_Stopval:8;	

	} w_S;
};




























# 115 "/usr/local/lang/CC/include/sys/wait.h" 



# 1 "/usr/local/lang/CC/include/sys/stdtypes.h" 1


# 46 "/usr/local/lang/CC/include/sys/stdtypes.h" 

# 119 "/usr/local/lang/CC/include/sys/wait.h" 2

pid_t	______waitpid();



 



extern "C" {
	int wait(int*);
	int wait3(int*, int, struct rusage*);
	int wait4(int, int*, int, struct rusage*);
	int waitpid(int, int*, int);
}



# 12 "/usr/local/lang/CC/include/sysent.h" 2



# 1 "/usr/local/lang/CC/include/sys/ptrace.h" 1



















enum ptracereq {
	PTRACE_TRACEME = 0,		
	PTRACE_CHILDDONE = 0,		
	PTRACE_PEEKTEXT,		
	PTRACE_PEEKDATA,		
	PTRACE_PEEKUSER,		
	PTRACE_POKETEXT,		
	PTRACE_POKEDATA,		
	PTRACE_POKEUSER,		
	PTRACE_CONT,			
	PTRACE_KILL,			
	PTRACE_SINGLESTEP,		
	PTRACE_ATTACH,			
	PTRACE_DETACH,			
	PTRACE_GETREGS,			
	PTRACE_SETREGS,			
	PTRACE_GETFPREGS,		
	PTRACE_SETFPREGS,		
	PTRACE_READDATA,		
	PTRACE_WRITEDATA,		
	PTRACE_READTEXT,		
	PTRACE_WRITETEXT,		
	PTRACE_GETFPAREGS,		
	PTRACE_SETFPAREGS,		

	
	PTRACE_GETWINDOW,		
	PTRACE_SETWINDOW,		
# 51 "/usr/local/lang/CC/include/sys/ptrace.h" 

	PTRACE_SYSCALL,                 
	PTRACE_DUMPCORE,                
# 58 "/usr/local/lang/CC/include/sys/ptrace.h" 

	PTRACE_26,			
	PTRACE_27,			
	PTRACE_28,			

	PTRACE_GETUCODE,		
};

# 93 "/usr/local/lang/CC/include/sys/ptrace.h" 



 



extern "C" {
	int ptrace(enum ptracereq, int, char*, int, char *addr=0);
}


# 16 "/usr/local/lang/CC/include/sysent.h" 2



extern "C" {
	void _exit(int);
	int access(const char*, int);
	int acct(const char*);
	int chdir(const char*);
	int chroot(const char*);
	int close(int);
	int dup(int);
	void exit(int);
	int ioctl(int, int ...);
	int link(const char*, const char*);
	int nice(int);
	int pause();
	int pipe(int*);
	void sync();
	int unlink(const char*);
	int system(const char*);
	int execl(const char*, const char* ...);
	int execle(const char*, const char* ...);
	int execlp(const char*, const char* ...);
	int execv(const char*, const char*[]);
	int execve(const char*, const char*[], const char*[]);
	int execvp(const char*, const char*[]);

	int chmod(const char*, mode_t);
	int chown(const char*, int, int);
	int creat(const char*, int);
	int fork();
	int getpid();
	int getppid();
	int kill(int, int);
	int open(const char*, int, int mode=0666);
	long ulimit(int, long);
	int umask(int);
	int lockf(int, int, long);
	int mknod(const char*, int, int);
	int dup2(int, int);
	int mkdir(const char*, int);
	int rmdir(const char*);
	int rename(const char*, const char*);
	int async_daemon();
	int getdirentries(int, char*, int, long*);
	int fchmod(int, int);
	int fchown(int, int, int);
	int fsync(int);
	int getdomainname(char*, int);
	int getgroups(int, int);
	int gethostname(char*, int);
	void profil(const char*, int, int, int);
	int readlink(const char*, char*, int);
	int setdomainname(const char*, int);
	int setgroups(int, const int*);
	int sethostname(const char*, int);
	int shutdown(int, int);
	int swapon(const char*);
	int symlink(const char*, const char*);
	int vfork();
	int write(int, const char*, int);
	int read(int, char*, int);
	off_t lseek(int, off_t, int);
	int ftruncate(int, off_t);
	int truncate(const char*, off_t);
	int getdtablesize();
	int flock(int, int);
	long gethostid();
	int getpagesize();
	int killpg(int, int);
	int syscall(int ...);
	int vadvise(int);
	int brk(caddr_t);
	int fchdir(int);
	int fchroot(int);
	int setuid(uid_t);
	int setgid(gid_t);
	int getegid();
	int geteuid();
	int getgid();
	int getuid();
	int mount(const char*, const char*, int, caddr_t);
	int unmount(const char*);
	int nfssvc(int);
	int sleep(unsigned);
	unsigned alarm(unsigned);
	int getpgrp(int);
	caddr_t sbrk(int);
	int setpgrp(int, int);
	int setreuid(int, int);
	int setregid(int, int);
	void vhangup();
	int setegid(gid_t);
	int seteuid(uid_t);
	int setrgid(gid_t);
	int setruid(uid_t);
}


# 55 "/usr/prac/se/hush/experimental/include/adt/assert.h" 2



# 1 "/usr/local/lang/CC/include/stdlib.h" 1






# 1 "/usr/local/lang/CC/include/stddef.h" 1



typedef int ptrdiff_t;

typedef unsigned int size_t;








# 8 "/usr/local/lang/CC/include/stdlib.h" 2



# 1 "/usr/local/lang/CC/include/pwd.h" 1






# 1 "/usr/local/lang/CC/include/stdio.h" 1






# 1 "/usr/local/lang/CC/include/errno.h" 1
































































	













	













	















































 



extern "C" {
	extern 
# 149 "/usr/local/lang/CC/include/errno.h" 

	int errno;

	void perror(const char*);
	extern int sys_nerr;
	extern char *sys_errlist[];
}


# 8 "/usr/local/lang/CC/include/stdio.h" 2
















































# 58 "/usr/local/lang/CC/include/stdio.h" 











extern	struct	_iobuf {
	int	_cnt;
	unsigned char *_ptr;
	unsigned char *_base;
	int	_bufsiz;
	short	_flag;
	char	_file;		
} _iob[];



















# 99 "/usr/local/lang/CC/include/stdio.h" 

















extern struct _iobuf	*______fopen();
extern struct _iobuf	*______fdopen();
extern struct _iobuf	*______freopen();
extern struct _iobuf	*______popen();
extern struct _iobuf	*______tmpfile();
extern long	______ftell();
extern char	*______fgets();
extern char	*______gets();
extern char	*______sprintf();
extern char	*______ctermid();
extern char	*______cuserid();
extern char	*______tempnam();
extern char	*______tmpnam();






 









































extern "C" {
	int _filbuf(struct _iobuf *);
	int fclose(struct _iobuf *);
	struct _iobuf *fdopen(int, const char *);
	int fflush(struct _iobuf *);
	int fgetc(struct _iobuf *);
	char *fgets(char *, int, struct _iobuf *);
	struct _iobuf *fopen(const char *, const char *);
	int fprintf(struct _iobuf *, const char * ...);
	int fputc(int, struct _iobuf *);
	int fputs(const char *, struct _iobuf *);
	struct _iobuf *freopen(const char *, const char *, struct _iobuf *);
	int fscanf(struct _iobuf *, const char * ...);
	int fseek(struct _iobuf *, long, int);
	char *gets(char *);
	int getw(struct _iobuf *);
	int pclose(struct _iobuf *);
	struct _iobuf *popen(const char *, const char *);
	int printf(const char * ...);
	int puts(const char *);
	int putw(int, struct _iobuf *);
	void rewind(struct _iobuf *);
	int scanf(const char * ...);
	void setbuf(struct _iobuf *, char *);
	int sscanf(const char *, const char * ...);
	int ungetc(int, struct _iobuf *);
	long ftell(const struct _iobuf *);
	int setvbuf(struct _iobuf *, char *, int, size_t);
	struct _iobuf *tmpfile();
        int fread(void *, int, int, struct _iobuf *);
        int fwrite(const void *, int, int, struct _iobuf *);
	int _flsbuf(unsigned char, struct _iobuf *);
# 211 "/usr/local/lang/CC/include/stdio.h" 

# 214 "/usr/local/lang/CC/include/stdio.h" 

# 217 "/usr/local/lang/CC/include/stdio.h" 

# 220 "/usr/local/lang/CC/include/stdio.h" 

 	char *sprintf(char *, const char * ...);
	int setbuffer(struct _iobuf *, char *, int);
	int setlinebuf(struct _iobuf *);
}



extern "C" {
	char *tmpnam(char*);  
}


# 8 "/usr/local/lang/CC/include/pwd.h" 2
















# 1 "/usr/local/lang/CC/include/sys/types.h" 1


# 136 "/usr/local/lang/CC/include/sys/types.h" 


# 25 "/usr/local/lang/CC/include/pwd.h" 2

struct passwd {
	char	*pw_name;
	char	*pw_passwd;
	int	pw_uid;
	int	pw_gid;
	char	*pw_age;
	char	*pw_comment;
	char	*pw_gecos;
	char	*pw_dir;
	char	*pw_shell;
};



extern struct passwd *______getpwent();

struct comment {
        char    *c_dept;
        char    *c_name;
        char    *c_acct;
        char    *c_bin;
};



struct passwd *______getpwuid();
struct passwd *______getpwnam();


 









extern "C" {
	struct passwd *getpwent();
	struct passwd *getpwnam(const char *);
	struct passwd *getpwuid(int);
	struct passwd *fgetpwent(struct _iobuf *);
	int putpwent(struct passwd *, struct _iobuf *);
	int setpwent();
	int endpwent();
	void setpwfile(const char *);
}


# 12 "/usr/local/lang/CC/include/stdlib.h" 2



# 1 "/usr/local/lang/CC/include/rand48.h" 1






extern "C" {
	double drand48();
	double erand48(unsigned short *);
	long jrand48(unsigned short *);
	long lrand48();
	long mrand48();
	long nrand48(unsigned short *);
	void srand48(long);
	void lcong48(unsigned short *);
	unsigned short *seed48(unsigned short *);
}


# 16 "/usr/local/lang/CC/include/stdlib.h" 2



# 1 "/usr/local/lang/CC/include/regcmp.h" 1





extern "C" {
	char *logname();
	char *re_comp(const char *);
	int re_exec(const char *);
}


# 20 "/usr/local/lang/CC/include/stdlib.h" 2


# 24 "/usr/local/lang/CC/include/stdlib.h" 



extern "C" {
	double atof(const char*);
	int atoi(const char*);
	long atol(const char*);
	void exit(int);
	char *fcvt(double, int, int*, int*);
	double frexp(double, int*);
	char *ecvt(double, int, int*, int*);
	char *getpass(const char*);
	char *gcvt(double, int, char*);
	char *getenv(const char*);
	int getpw(int, char*);
	int isatty(int);
	char *mktemp(char*);
	void qsort(void*, size_t, size_t, int(*)(const void*, const void*));
	void swab(const char*, char*, int);
	int system(const char*);
	char *ttyname(int);
	const char* crypt(const char*, const char*);
	void encrypt(char*, int);
	double fabs(double);
	char *getlogin();
	double ldexp(double, int);
	double modf(double, double*);
	void perror(const char*);
	void setkey(const char*);
	long time(long*);
	char *tmpnam(char*);
	int ttyslot();
	char *ctermid(char*);
	char *cuserid(char*);
	char *tempnam(const char*, const char*);
	int putenv(const char*);
	int getopt(int, const char* const*, const char*);
	long a64l(const char*);
	char *getcwd(char*, int);
	void l3tol(long*, const char*, int);
	char *l64a(long);
	void ltol3(char*, const long*, int);
	long clock();
	int abort(...); 
	unsigned alarm(unsigned);
	int bcmp(const void*, const void*, int);
	void bcopy(const void*, void*, int);
	void bzero(void*, int);
	int execl(const char*, const char* ...);
	int execle(const char*, const char* ...);
	int execlp(const char*, const char* ...);
	int execv(const char*, const char* argv[]);
	int execvp(const char*, const char* argv[]);
	int ffs(int);
	char *getwd(char*);
	char *initstate(unsigned, char*, int);
	int nice(int);
	int pause();
	long random();
	char *setstate(char*);
	int sleep(unsigned);
	void srandom(int);
	int lockf(int, int, long);
	long ulimit(int, long);
	int usleep(unsigned);
	int rand();
	int srand(int);
	double strtod(const char*, char**);
	long strtol(const char*, char**, int);
	void closelog();
	int endnetgrent();
	int getnetgrent(char**, char**, char**);
	int initgroups(char*, int);
	void openlog(const char*, int, int);
	int rnusers(const char*);
	int rresvport(int*);
	int ruserok(const char*, int, const char*, const char*);
	int setnetgrent(char*);
	void syslog(int, const char* ...);
	int rwall(const char*, const char*);
	int setlogmask(int);
}

extern char *optarg;
extern int optind, opterr;
extern char **environ;
extern int end, etext, edata;


# 1 "/usr/local/lang/CC/include/malloc.h" 1












# 15 "/usr/local/lang/CC/include/malloc.h" 

























struct	mallinfo  {
	int arena;	
	int ordblks;	
	int smblks;	
	int hblks;	
	int hblkhd;	
	int usmblks;	
	int fsmblks;	
	int uordblks;	
	int fordblks;	
	int keepcost;	

	int mxfast;	
	int nlblks;	
	int grain;	
	int uordbytes;	
	int allocated;	
	int treeoverhead;	
};

typedef	char *	malloc_t;

extern	malloc_t	______calloc();
extern	int		______free();
extern	malloc_t	______malloc();
extern	malloc_t	______realloc();
extern	int		______mallopt();
extern	struct mallinfo mallinfo();


 









extern "C" {
	char *malloc(size_t);
	void free(void*);
	char *realloc(void*, size_t);
	char *calloc(unsigned, size_t);
	void cfree(void*);
	int mallopt(int, int);
	struct mallinfo mallinfo(int);
	char *memalign(unsigned, size_t);
	char *valloc(size_t);
	int malloc_debug(int);
	int malloc_verify();
}


# 114 "/usr/local/lang/CC/include/stdlib.h" 2




# 59 "/usr/prac/se/hush/experimental/include/adt/assert.h" 2



# 1 "/usr/local/lang/CC/include/iostream.h" 1


















# 1 "/usr/local/lang/CC/include/memory.h" 1

















extern char
	*______memccpy(),
	*______memchr(),
	*______memcpy(),
	*______memset();
extern int ______memcmp();


 







extern "C" {
    void* memcpy(void*, const void*, int);
    void* memccpy(void*, const void*, int, int);
    void* memchr(const void*, int, int);
    int   memcmp(const void*, const void*, int);
    void* memset(void*, int, int);
}








# 20 "/usr/local/lang/CC/include/iostream.h" 2
		






# 29 "/usr/local/lang/CC/include/iostream.h" 

# 32 "/usr/local/lang/CC/include/iostream.h" 



# 37 "/usr/local/lang/CC/include/iostream.h" 



	    





typedef long streampos ;
typedef long streamoff ;

class streambuf ;
class ostream ;


class ios {
public: 


	enum io_state	{ goodbit=0, eofbit=1, failbit=2, badbit=4, 
				hardfail=0200};
				

	enum open_mode	{ in=1, out=2, ate=4, app=010, trunc=020,
				nocreate=040, noreplace=0100} ;
	enum seek_dir	{ beg=0, cur=1, end=2 } ;

	
	enum		{ skipws=01,	
					
			  left=02,  right=04, internal=010,
					
			  dec=020, oct=040, hex=0100, 
					
			  showbase=0200, showpoint=0400, uppercase=01000,
			  showpos=02000, 
					
			  scientific=04000, fixed=010000,
					
			  unitbuf=020000, stdio=040000
					
			  } ;
	static const long 
			basefield ; 
	static const long
			adjustfield ; 
	static const long
			floatfield ; 
public:
			ios(streambuf*) ;
	virtual		~ios() ;

	long		flags() const 	{ return x_flags ; }
	long		flags(long f);

	long		setf(long setbits, long field);
	long		setf(long) ;
	long		unsetf(long) ;

	int		width() const	{ return x_width ; }
	int		width(int w)
	{
			int i = x_width ; x_width = w ; return i ;
	}
		
	ostream*	tie(ostream* s); 
	ostream*	tie()		{ return x_tie ; }
	char		fill(char) ;
	char		fill() const	{ return x_fill ; }
	int		precision(int) ;
	int		precision() const	{ return x_precision ; }

	int		rdstate() const	{ return state ; }
			operator void*()
				{
				if (state&(failbit|badbit|hardfail)) return 0 ;
				else return this ;
				}
			operator const void*() const
				{
				if (state&(failbit|badbit|hardfail)) return 0 ;
				else return this ;
				}

	int		operator!() const
				{ return state&(failbit|badbit|hardfail); } 
	int		eof() const	{ return state&eofbit; }
	int		fail() const	{ return state&(failbit|badbit|hardfail); }
	int		bad() const	{ return state&badbit ; }
	int		good() const	{ return state==0 ; }
	void		clear(int i =0) 
				{	
				state =  (i&0377) | (state&hardfail) ;
				ispecial = (ispecial&~0377) | state ; 
				ospecial = (ospecial&~0377) | state ; 
				}
	streambuf*	rdbuf() { return bp ;} 

public: 
	long &		iword(int) ;
	void* &		pword(int) ;
	static long	bitalloc() ;
	static int	xalloc() ;

private:  
	static long	nextbit ;
	static long	nextword ;
	
	int		nuser ;
	union ios_user_union*
			x_user ;
	void	uresize(int) ;
public: 
	static void	sync_with_stdio() ;
protected:
	enum 		{ skipping=01000, tied=02000 } ;
			
	streambuf*	bp;
	void		setstate(int b)
			{	state |= (b&0377) ;
				ispecial |= b&~skipping ;
				ispecial |= b ;
			}
	int		state;	
	int		ispecial;		
	int		ospecial;
	int		isfx_special;
	int		osfx_special;		
	int		delbuf;
	ostream*	x_tie;
	long 		x_flags;
	short		x_precision;
	char		x_fill;
	short 		x_width;

	static void	(*stdioflush)() ;

	void		init(streambuf*) ;
				
			ios() ; 

	int		assign_private ;
				
private:		
			ios(ios&) ; 
	void		operator=(ios&) ; 
public:   
	int		skip(int i) ; 
};

class streambuf {
	short		alloc;	
	short		x_unbuf;
	char* 		x_base;	
	char*		x_pbase;
	char*		x_pptr;	
	char* 		x_epptr;
	char* 		x_gptr;
	char*		x_egptr;
	char*		x_eback;
	int		x_blen;	
    private:
			streambuf(streambuf&); 
	void		operator=(streambuf&); 
    public:
	void		dbp();
    protected:
	char*		base() 		{ return x_base ; }
	char*		pbase()		{ return x_pbase ; }
	char*		pptr() 		{ return x_pptr ; }
	char*		epptr() 	{ return x_epptr ; }
	char*		gptr() 		{ return x_gptr ; }
	char*		egptr() 	{ return x_egptr ; }
	char*		eback() 	{ return x_eback ; }
	char* 		ebuf()		{ return x_base+x_blen ; }
	int		blen() const	{ return x_blen; }
	void		setp(char*  p, char*  ep)
	{
		x_pbase=x_pptr=p ; x_epptr=ep ;
	}
	void		setg(char*  eb,char*  g, char*  eg)
	{
		x_eback=eb; x_gptr=g ; x_egptr=eg ;
	}
	void		pbump(int n) 
	{ 
		x_pptr+=n ;
	}

	void		gbump(int n) 
	{ 
		x_gptr+=n ;
		}

	void		setb(char* b, char* eb, int a = 0 )
	{
		if ( alloc && x_base ) delete x_base ;
		x_base = b ;
		x_blen= (eb>b) ? (eb-b) : 0 ;
		alloc = a ;
		}
	int		unbuffered() const { return x_unbuf; }
	void		unbuffered(int unb) { x_unbuf = (unb!=0)  ; }
	int		allocate()
	{
		if ( x_base== 0 && !unbuffered() ) return doallocate() ;
		else			  	 return 0 ;
	}
	virtual int 	doallocate();
    public : 
	virtual int	overflow(int c=(-1));
	virtual int	underflow();
	virtual int	pbackfail(int c);
	virtual int	sync();
	virtual streampos
			seekoff(streamoff,ios::seek_dir,int =ios::in|ios::out);
	virtual streampos
			seekpos(streampos, int =ios::in|ios::out) ;
	virtual int	xsputn(const char*  s,int n);
	virtual int	xsgetn(char*  s,int n);

	int		in_avail()
	{
		return x_gptr<x_egptr ? x_egptr-x_gptr : 0 ;
	}

	int		out_waiting() 
	{	
		if ( x_pptr ) return x_pptr-x_pbase ;
		else	      return 0 ; 
	}

	int		sgetc()
	{
		
		return (x_gptr>=x_egptr) ? underflow() : ((*x_gptr)&0377);
	}
	int		snextc()
	{
		return (++x_gptr>=x_egptr)
				? x_snextc()
				: ((*x_gptr)&0377);
	}
	int		sbumpc()
	{
		return  ( x_gptr>=x_egptr && underflow()==(-1) ) 
				? (-1) 
				: ((*x_gptr++)&0377) ;
	}
	int		optim_in_avail()
	{
		return x_gptr<x_egptr ;
	}
	int		optim_sbumpc()
	{
		return  ((*x_gptr++)&0377) ; 
	}
	void		stossc()
	{
		if ( x_gptr >= x_egptr ) underflow() ;
		else x_gptr++ ;
	}

	int		sputbackc(char c)
	{
		if (x_gptr > x_eback ) {
			if ( *--x_gptr == c ) return ((c)&0377) ;
			else 		      return ((*x_gptr=c)&0377) ;
		} else {
			return pbackfail(c) ;
		}
	}

	int		sputc(int c)
	{
		return (x_pptr>=x_epptr) ? overflow(((c)&0377))
				      : ((*x_pptr++=c)&0377);
	}
	int		sputn(const char*  s,int n)
	 {
		if ( n <= (x_epptr-x_pptr) ) {
			memcpy(x_pptr,s,n) ;
			pbump(n);
			return n ;
		} else {
			return xsputn(s,n) ;
		}
	}
	int		sgetn(char*  s,int n)
	{
		if ( n <= (x_egptr-x_gptr) ) {
			memcpy(s,x_gptr,n) ;
			gbump(n);
			return n ;
		} else {
			return xsgetn(s,n) ;
		}
	}
	virtual streambuf*
			setbuf(char*  p, int len) ;
   	streambuf*	setbuf(unsigned char*  p, int len) ;

	streambuf*	setbuf(char*  p, int len, int count) ;
				
  			
			streambuf() ;
			streambuf(char*  p, int l) ;

			streambuf(char*  p, int l,int c) ;
			


	virtual		~streambuf() ;
private:
	int		x_snextc() ;
};

class istream : virtual public ios {
public: 
			istream(streambuf*) ;
	virtual		~istream() ;
public:	
	int		ipfx(int noskipws=0)
			{	if ( noskipws?(ispecial&~skipping):ispecial) {
					return do_ipfx(noskipws) ;
				} else return 1 ;
			}
	void		isfx() { }  
	istream&	seekg(streampos p) ;
	istream&	seekg(streamoff o, ios::seek_dir d) ;
   	streampos	tellg() ; 
	istream&	operator>> (istream& (*f)(istream&))
			{	return (*f)(*this) ; }
	istream&	operator>> (ios& (*f)(ios&) ) ;
	istream&	operator>>(char*);
	istream&	operator>>(unsigned char*);
	istream&	operator>>(unsigned char& c)
			{	if ( !ispecial && bp->optim_in_avail() ) {
					c = bp->optim_sbumpc() ;
					return *this;
				}
				else {
					return (rs_complicated(c));
				}
			}
	istream&	operator>>(char& c)
			{	if ( !ispecial && bp->optim_in_avail() ) {
					c = bp->optim_sbumpc() ;
					return *this;
				}
				else {
					return (rs_complicated(c));
				}
			}
	istream&	rs_complicated(unsigned char& c);
	istream&	rs_complicated(char& c);
	istream&	operator>>(short&);
	istream&	operator>>(int&);
	istream&	operator>>(long&);
	istream&	operator>>(unsigned short&);
	istream&	operator>>(unsigned int&);
	istream&	operator>>(unsigned long&);
	istream&	operator>>(float&);
	istream&	operator>>(double&);
	istream&	operator>>(streambuf*);
	istream&	get(char* , int lim, char delim='\n');
	istream&	get(unsigned char* b,int lim, char delim='\n');
	istream&	getline(char* b, int lim, char delim='\n');
	istream&	getline(unsigned char* b, int lim, char delim='\n');
	istream&	get(streambuf& sb, char delim ='\n');
	istream&	get_complicated(unsigned char& c);
	istream&	get_complicated(char& c);
	istream&	get(unsigned char& c)
			{
				if ( !(ispecial & ~skipping) && bp->optim_in_avail() ) {
					x_gcount = 1 ;
					c = bp->sbumpc() ;
					return *this;
				} else {
					return (get_complicated(c));
				}
			}
	istream&	get(char& c)
			{
				if ( !(ispecial & ~skipping) && bp->optim_in_avail() ) {
					x_gcount = 1 ;
					c = bp->sbumpc() ;
					return *this;
				} else {
					return (get_complicated(c));
				}
			}
	int 		get()
			{
				int c ;
				if ( !ipfx(1) ) return (-1) ;
				else {
					c = bp->sbumpc() ;
					if ( c == (-1) ) setstate(eofbit) ;
					return c ;
					}
			}
	int		peek() 
			{
				if ( ipfx(-1) ) return bp->sgetc() ;
				else		return (-1) ;

			}
	istream&	ignore(int n=1,int delim=(-1)) ;
	istream&	read(char*  s,int n);
	istream&	read(unsigned char* s,int n) 
			{
				return read((char*)s,n) ;
			}
	int		gcount() ;
	istream&	putback(char c);
	int		sync()	{ return bp->sync() ; }
protected:  
	int		do_ipfx(int noskipws) ;
	void		eatwhite() ;
			istream() ;
private: 
	int		x_gcount ;
	void 		xget(char*  c) ;
public: 
			istream(streambuf*, int sk, ostream* t=0) ;
				

			istream(int size ,char*,int sk=1) ;
				
			istream(int fd,int sk=1, ostream* t=0) ;
				
};

class ostream : virtual public ios {
public: 
			ostream(streambuf*) ;
	virtual		~ostream();
public:	
	int		opfx()	
			{	if ( ospecial )	return do_opfx() ;
				else		return 1 ;
			}
	void		osfx() 
			{	if ( osfx_special ) do_osfx() ; }

	ostream&	flush() ;
	ostream&	seekp(streampos p) ;
	ostream&	seekp(streamoff o, ios::seek_dir d) ;
 	streampos	tellp() ; 
	ostream&	put(char c)
	{
		if (ospecial || osfx_special) {
			return complicated_put(c);
		}
		else {
			if (  bp->sputc(c) == (-1) )  {
				setstate(eofbit|failbit) ;
			}
			return *this ;
		}
	}
	ostream&	complicated_put(char c);
	ostream&	operator<<(char c)
	{
		if (ospecial || osfx_special) {
			return ls_complicated(c);
		}
		else {
			if (  bp->sputc(c) == (-1) )  {
				setstate(eofbit|failbit) ;
			}
			return *this ;
		}
	}

	ostream&	operator<<(unsigned char c) 
	{
		if (ospecial || osfx_special) {
			return ls_complicated(c);
		}
		else {
			if (  bp->sputc(c) == (-1) )  {
				setstate(eofbit|failbit) ;
			}
			return *this ;
		}
	}
	ostream& 	ls_complicated(char);
	ostream& 	ls_complicated(unsigned char);

	ostream&	operator<<(const char*);
	ostream&	operator<<(int a); 
	ostream&	operator<<(long);	
	ostream&	operator<<(double);
	ostream&	operator<<(float);
	ostream&	operator<<(unsigned int a);
	ostream&	operator<<(unsigned long);
	ostream&	operator<<(void*);

	ostream&	operator<<(streambuf*);
	ostream&	operator<<(short i) { return *this << (int)i ; }
	ostream&	operator<<(unsigned short i) 
			{ return *this << (int)i  ; }

	ostream&	operator<< (ostream& (*f)(ostream&))
			{ return (*f)(*this) ; }
	ostream&	operator<< (ios& (*f)(ios&) ) ;

	ostream&	write(const char*  s,int n)	
	{
		if ( !state ) {
			if ( bp->sputn(s,n) != n ) setstate(eofbit|failbit);
			}
		return *this ;
	}
	ostream&	write(const unsigned char* s, int n)
	{
		return write((const char*)s,n);
	}
protected: 
	int		do_opfx() ;
	void		do_osfx() ;
			ostream() ;

public: 
			ostream(int fd) ;
				
			ostream(int size ,char*) ;
				
} ;

class iostream : public istream, public ostream {
public:
			iostream(streambuf*) ;
	virtual		~iostream() ;
protected:
			iostream() ;
	} ;

class istream_withassign : public istream {
public:
			istream_withassign() ;
	virtual		~istream_withassign() ;
	istream_withassign&	operator=(istream&) ;
	istream_withassign&	operator=(streambuf*) ;
} ;

class ostream_withassign : public ostream {
public:
			ostream_withassign() ;
	virtual		~ostream_withassign() ;
	ostream_withassign&	operator=(ostream&) ;
	ostream_withassign&	operator=(streambuf*) ;
} ;

class iostream_withassign : public iostream {
public:
			iostream_withassign() ;
	virtual		~iostream_withassign() ;
	iostream_withassign&	operator=(ios&) ;
	iostream_withassign&	operator=(streambuf*) ;
} ;

extern istream_withassign cin ;
extern ostream_withassign cout ;
extern ostream_withassign cerr ;
extern ostream_withassign clog ;

ios&		dec(ios&) ; 
ostream&	endl(ostream& i) ;
ostream&	ends(ostream& i) ;
ostream&	flush(ostream&) ;
ios&		hex(ios&) ;
ios&		oct(ios&) ; 
istream&	ws(istream&) ;

static class Iostream_init {
	static int	stdstatus ; 
	static int	initcount ;
	friend		ios ;
public:
	Iostream_init() ; 
	~Iostream_init() ; 
} iostream_init ;	


# 63 "/usr/prac/se/hush/experimental/include/adt/assert.h" 2


# 67 "/usr/prac/se/hush/experimental/include/adt/assert.h" 










# 7 "/usr/prac/se/hush/experimental/include/hush/hush.h" 2

# 1 "/usr/prac/se/hush/experimental/include/hush/session.h" 1



class kit;

typedef void installproc( kit*, int argc, char**);

/// GLOBALS

extern kit* thekit();

/// END GLOBALS

class session  {
friend class kit;
public:
	
session(int argc, char** argv, char* name = "hush");
void init(char* fname);
void install( void proc(kit*, int argc, char**) ); 
int run( installproc p = 0, int flags = 1 );

virtual void main(kit* tk, int argc, char* argv[] );

~session() { };

private:
kit* tk;
int argc_;
char** argv_;
char* name_;
int flags_;

installproc* install_;
installproc* program_;
char init_[1024];
};


# 9 "/usr/prac/se/hush/experimental/include/hush/hush.h" 2

# 1 "/usr/prac/se/hush/experimental/include/hush/hclcl.h" 1




# 1 "/usr/local/lang/CC/include/stdlib.h" 1


# 116 "/usr/local/lang/CC/include/stdlib.h" 


# 6 "/usr/prac/se/hush/experimental/include/hush/hclcl.h" 2
# 1 "/usr/local/lang/CC/include/stdio.h" 1


# 232 "/usr/local/lang/CC/include/stdio.h" 

# 7 "/usr/prac/se/hush/experimental/include/hush/hclcl.h" 2
# 1 "/usr/local/lang/CC/include/iostream.h" 1















# 26 "/usr/local/lang/CC/include/iostream.h" 
# 624 "/usr/local/lang/CC/include/iostream.h" 

# 8 "/usr/prac/se/hush/experimental/include/hush/hclcl.h" 2


# 1 "/usr/prac/se/hush/experimental/include/hush/interp.h" 1

























# 1 "/usr/local/lang/CC/include/stddef.h" 1
# 14 "/usr/local/lang/CC/include/stddef.h" 

# 27 "/usr/prac/se/hush/experimental/include/hush/interp.h" 2
# 1 "/usr/local/lang/CC/include/stdlib.h" 1


# 116 "/usr/local/lang/CC/include/stdlib.h" 


# 28 "/usr/prac/se/hush/experimental/include/hush/interp.h" 2
# 1 "/usr/local/lang/CC/include/string.h" 1





# 8 "/usr/local/lang/CC/include/string.h" 

























# 1 "/usr/local/lang/CC/include/sys/stdtypes.h" 1


# 46 "/usr/local/lang/CC/include/sys/stdtypes.h" 

# 34 "/usr/local/lang/CC/include/string.h" 2

# 37 "/usr/local/lang/CC/include/string.h" 


extern char *	______strcat();
extern char *	______strchr();
extern int	______strcmp();
extern char *	______strcpy();
extern size_t	______strcspn();

extern char *	______strdup();

extern size_t	______strlen();
extern char *	______strncat();
extern int	______strncmp();
extern char *	______strncpy();
extern char *	______strpbrk();
extern char *	______strrchr();
extern size_t	______strspn();
extern char *	strstr();
extern char *	______strtok();


 


















extern "C" {
	char *strncpy(char*, const char*, int);
	char *strncat(char*, const char*, int);
	int strncmp(const char*, const char*, int);
	int strlen(const char*);
	char *strcpy(char*, const char*);
	char *strcat(char*, const char*);
	int strcmp(const char*, const char*);
	char *strchr(const char*, int);
	char *strpbrk(const char*, const char*);
	char *strrchr(const char*, int);
	char *strtok(char*, const char*);
	int strspn(const char*, const char*);
	int strcspn(const char*, const char*);
	char *index(const char*, char);
	char *rindex(const char*, char);
	char *strdup(const char*);
	int strcoll(const char *, const char *);
	size_t strxfrm(char *, const char *, size_t);
	int strcasecmp(const char *, const char *);
	int strncasecmp(const char *, const char *, int);
	char *strstr(const char *, const char *);
}


# 29 "/usr/prac/se/hush/experimental/include/hush/interp.h" 2
// #include <varargs.h>
# 1 "/usr/local/lang/CC/include/stdarg.h" 1























# 39 "/usr/local/lang/CC/include/stdarg.h" 

typedef char *va_list;

# 47 "/usr/local/lang/CC/include/stdarg.h" 

# 51 "/usr/local/lang/CC/include/stdarg.h" 


static int __builtin_va_alist;  







# 63 "/usr/local/lang/CC/include/stdarg.h" 


extern "C" __builtin_va_arg_incr(...);

# 69 "/usr/local/lang/CC/include/stdarg.h" 






# 1 "/usr/local/lang/CC/include/stdio.h" 1


# 232 "/usr/local/lang/CC/include/stdio.h" 

# 76 "/usr/local/lang/CC/include/stdarg.h" 2
extern "C" {
extern int vprintf(const char*, va_list),
	vfprintf(struct _iobuf*, const char*, va_list),
	vsprintf(char*, const char*, va_list);
}




# 31 "/usr/prac/se/hush/experimental/include/hush/interp.h" 2

# 1 "/usr/prac/se/hush/experimental/include/hush/tcl.h" 1


extern "C" {
//#include </usr/local/lang/tk/include/tcl.h>
# 1 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 1
































# 35 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 



















# 56 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 

# 60 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 




# 66 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 









# 77 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 










# 89 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 



# 94 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 

    typedef int *ClientData;












typedef struct Tcl_Interp{
    char *result;		

    void (*freeProc) (char *blockPtr);
				




    int errorLine;		


} Tcl_Interp;

typedef int *Tcl_Trace;
typedef struct Tcl_AsyncHandler_ *Tcl_AsyncHandler;
































typedef enum {TCL_INT, TCL_DOUBLE, TCL_EITHER} Tcl_ValueType;
typedef struct Tcl_Value {
    Tcl_ValueType type;		

    int intValue;		
    double doubleValue;		
} Tcl_Value;





typedef int (Tcl_AsyncProc) 
# 169 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(ClientData clientData, 	Tcl_Interp *interp, int code);
typedef void (Tcl_CmdDeleteProc) (ClientData clientData);
typedef int (Tcl_CmdProc) 
# 172 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(ClientData clientData, 	Tcl_Interp *interp, int argc, char *argv[]);
typedef void (Tcl_CmdTraceProc) 
# 175 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(ClientData clientData, 	Tcl_Interp *interp, int level, char *command, Tcl_CmdProc *proc, 	ClientData cmdClientData, int argc, char *argv[]);
typedef void (Tcl_FreeProc) (char *blockPtr);
typedef void (Tcl_InterpDeleteProc) 
# 178 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(ClientData clientData, 	Tcl_Interp *interp);
typedef int (Tcl_MathProc) 
# 180 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(ClientData clientData, 	Tcl_Interp *interp, Tcl_Value *args, Tcl_Value *resultPtr);
typedef char *(Tcl_VarTraceProc) 
# 182 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(ClientData clientData, 	Tcl_Interp *interp, char *part1, char *part2, int flags);






typedef struct Tcl_CmdInfo {
    Tcl_CmdProc *proc;			
    ClientData clientData;		
    Tcl_CmdDeleteProc *deleteProc;	

    ClientData deleteData;		

} Tcl_CmdInfo;








typedef struct Tcl_DString {
    char *string;		

    int length;			

    int spaceAvl;		

    char staticSpace[200];
				

} Tcl_DString;


















































































# 313 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 































struct Tcl_HashTable;








typedef struct Tcl_HashEntry {
    struct Tcl_HashEntry *nextPtr;	


    struct Tcl_HashTable *tablePtr;	
    struct Tcl_HashEntry **bucketPtr;	


    ClientData clientData;		

    union {				
	char *oneWordValue;		
	int words[1];			



	char string[4];			


    } key;				
} Tcl_HashEntry;








typedef struct Tcl_HashTable {
    Tcl_HashEntry **buckets;		


    Tcl_HashEntry *staticBuckets[4];
					

    int numBuckets;			

    int numEntries;			

    int rebuildSize;			

    int downShift;			


    int mask;				

    int keyType;			




    Tcl_HashEntry *(*findProc) 
# 406 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(struct Tcl_HashTable *tablePtr, 	    char *key);
    Tcl_HashEntry *(*createProc) 
# 408 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(struct Tcl_HashTable *tablePtr, 	    char *key, int *newPtr);
} Tcl_HashTable;






typedef struct Tcl_HashSearch {
    Tcl_HashTable *tablePtr;		
    int nextIndex;			

    Tcl_HashEntry *nextEntryPtr;	

} Tcl_HashSearch;
































extern "C" int		tcl_AsyncReady;
extern "C" char *		tcl_RcFileName;





extern "C" void		Tcl_AsyncMark (Tcl_AsyncHandler async);
extern "C" Tcl_AsyncHandler	Tcl_AsyncCreate 
# 464 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_AsyncProc *proc, 			    ClientData clientData);
extern "C" void		Tcl_AsyncDelete (Tcl_AsyncHandler async);
extern "C" int		Tcl_AsyncInvoke 
# 467 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    int code);
extern "C" void		Tcl_AppendElement 
# 469 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *string);
extern "C" void		Tcl_AppendResult (...);
extern "C" int		Tcl_AppInit (Tcl_Interp *interp);
extern "C" void		Tcl_AddErrorInfo 
# 473 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *message);
extern "C" char		Tcl_Backslash 
# 475 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(char *src, 			    int *readPtr);
extern "C" void		Tcl_CallWhenDeleted 
# 478 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    Tcl_InterpDeleteProc *proc, 			    ClientData clientData);
extern "C" int		Tcl_CommandComplete (char *cmd);
extern "C" char *		Tcl_Concat (int argc, char **argv);
extern "C" int		Tcl_ConvertElement 
# 482 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(char *src, 			    char *dst, int flags);
extern "C" void		Tcl_CreateCommand 
# 486 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *cmdName, Tcl_CmdProc *proc, 			    ClientData clientData, 			    Tcl_CmdDeleteProc *deleteProc);
extern "C" Tcl_Interp *	Tcl_CreateInterp (void);
extern "C" void		Tcl_CreateMathFunc 
# 490 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *name, int numArgs, Tcl_ValueType *argTypes, 			    Tcl_MathProc *proc, ClientData clientData);
extern "C" int		Tcl_CreatePipeline 
# 494 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    int argc, char **argv, int **pidArrayPtr, 			    int *inPipePtr, int *outPipePtr, 			    int *errFilePtr);
extern "C" Tcl_Trace	Tcl_CreateTrace 
# 497 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    int level, Tcl_CmdTraceProc *proc, 			    ClientData clientData);
extern "C" void		Tcl_DeleteHashEntry 
# 499 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
( 			    Tcl_HashEntry *entryPtr);
extern "C" void		Tcl_DeleteHashTable 
# 501 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
( 			    Tcl_HashTable *tablePtr);
extern "C" char *		Tcl_DStringAppend 
# 503 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_DString *dsPtr, 			    char *string, int length);
extern "C" char *		Tcl_DStringAppendElement 
# 505 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
( 			    Tcl_DString *dsPtr, char *string);
extern "C" void		Tcl_DStringEndSublist (Tcl_DString *dsPtr);
extern "C" void		Tcl_DStringFree (Tcl_DString *dsPtr);
extern "C" void		Tcl_DStringInit (Tcl_DString *dsPtr);
extern "C" void		Tcl_DStringResult 
# 510 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    Tcl_DString *dsPtr);
extern "C" void		Tcl_DStringStartSublist 
# 512 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
( 			    Tcl_DString *dsPtr);
extern "C" void		Tcl_DStringTrunc 
# 514 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_DString *dsPtr, 			    int length);
extern "C" int		Tcl_DeleteCommand 
# 516 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *cmdName);
extern "C" void		Tcl_DeleteInterp (Tcl_Interp *interp);
extern "C" void		Tcl_DeleteTrace 
# 519 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    Tcl_Trace trace);
extern "C" void		Tcl_DetachPids (int numPids, int *pidPtr);
extern "C" void		Tcl_DontCallWhenDeleted 
# 523 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
( 			    Tcl_Interp *interp, Tcl_InterpDeleteProc *proc, 			    ClientData clientData);
extern "C" void		Tcl_EnterFile 
# 525 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    struct _iobuf *file, int permissions);
extern "C" char *		Tcl_ErrnoId (void);
extern "C" int		Tcl_Eval (Tcl_Interp *interp, char *cmd);
extern "C" int		Tcl_EvalFile 
# 529 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *fileName);
extern "C" int		Tcl_ExprBoolean 
# 531 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *string, int *ptr);
extern "C" int		Tcl_ExprDouble 
# 533 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *string, double *ptr);
extern "C" int		Tcl_ExprLong 
# 535 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *string, long *ptr);
extern "C" int		Tcl_ExprString 
# 537 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *string);
extern "C" int		Tcl_FilePermissions (struct _iobuf *file);
extern "C" Tcl_HashEntry *	Tcl_FirstHashEntry 
# 541 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
( 			    Tcl_HashTable *tablePtr, 			    Tcl_HashSearch *searchPtr);
extern "C" int		Tcl_GetBoolean 
# 543 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *string, int *boolPtr);
extern "C" int		Tcl_GetCommandInfo 
# 545 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *cmdName, Tcl_CmdInfo *infoPtr);
extern "C" int		Tcl_GetDouble 
# 547 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *string, double *doublePtr);
extern "C" int		Tcl_GetInt 
# 549 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *string, int *intPtr);
extern "C" int		Tcl_GetOpenFile 
# 552 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *string, int write, int checkUsage, 			    struct _iobuf **filePtr);
extern "C" char *		Tcl_GetVar 
# 554 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *varName, int flags);
extern "C" char *		Tcl_GetVar2 
# 556 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *part1, char *part2, int flags);
extern "C" int		Tcl_GlobalEval 
# 558 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *command);
extern "C" char *		Tcl_HashStats (Tcl_HashTable *tablePtr);
extern "C" int		Tcl_Init (Tcl_Interp *interp);
extern "C" void		Tcl_InitHashTable 
# 562 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_HashTable *tablePtr, 			    int keyType);
extern "C" void		Tcl_InitMemory (Tcl_Interp *interp);
extern "C" int		Tcl_LinkVar 
# 565 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *varName, char *addr, int type);
extern "C" char *		Tcl_Merge (int argc, char **argv);
extern "C" Tcl_HashEntry *	Tcl_NextHashEntry 
# 568 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
( 			    Tcl_HashSearch *searchPtr);
extern "C" char *		Tcl_ParseVar 
# 570 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *string, char **termPtr);
extern "C" char *		Tcl_PosixError (Tcl_Interp *interp);
extern "C" void		Tcl_PrintDouble 
# 573 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    double value, char *dst);
extern "C" void		Tcl_ReapDetachedProcs (void);
extern "C" int		Tcl_RecordAndEval 
# 576 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *cmd, int flags);
extern "C" int		Tcl_RegExpMatch 
# 578 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *string, char *pattern);
extern "C" void		Tcl_ResetResult (Tcl_Interp *interp);

extern "C" int		Tcl_ScanElement 
# 582 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(char *string, 			    int *flagPtr);
extern "C" int		Tcl_SetCommandInfo 
# 584 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *cmdName, Tcl_CmdInfo *infoPtr);
extern "C" void		Tcl_SetErrorCode (...);
extern "C" int		Tcl_SetRecursionLimit 
# 587 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    int depth);
extern "C" void		Tcl_SetResult 
# 589 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *string, Tcl_FreeProc *freeProc);
extern "C" char *		Tcl_SetVar 
# 591 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *varName, char *newValue, int flags);
extern "C" char *		Tcl_SetVar2 
# 594 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *part1, char *part2, char *newValue, 			    int flags);
extern "C" char *		Tcl_SignalId (int sig);
extern "C" char *		Tcl_SignalMsg (int sig);
extern "C" int		Tcl_SplitList 
# 598 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *list, int *argcPtr, char ***argvPtr);
extern "C" int		Tcl_StringMatch 
# 600 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(char *string, 			    char *pattern);
extern "C" char *		Tcl_TildeSubst 
# 602 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *name, Tcl_DString *bufferPtr);
extern "C" int		Tcl_TraceVar 
# 605 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *varName, int flags, Tcl_VarTraceProc *proc, 			    ClientData clientData);
extern "C" int		Tcl_TraceVar2 
# 608 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *part1, char *part2, int flags, 			    Tcl_VarTraceProc *proc, ClientData clientData);
extern "C" void		Tcl_UnlinkVar 
# 610 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *varName);
extern "C" int		Tcl_UnsetVar 
# 612 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *varName, int flags);
extern "C" int		Tcl_UnsetVar2 
# 614 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *part1, char *part2, int flags);
extern "C" void		Tcl_UntraceVar 
# 617 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *varName, int flags, Tcl_VarTraceProc *proc, 			    ClientData clientData);
extern "C" void		Tcl_UntraceVar2 
# 620 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *part1, char *part2, int flags, 			    Tcl_VarTraceProc *proc, ClientData clientData);
extern "C" int		Tcl_VarEval (...);
extern "C" ClientData	Tcl_VarTraceInfo 
# 625 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *varName, int flags, 			    Tcl_VarTraceProc *procPtr, 			    ClientData prevClientData);
extern "C" ClientData	Tcl_VarTraceInfo2 
# 629 "/usr/prac/se/hush/experimental/include/tcl-tk/tcl.h" 
(Tcl_Interp *interp, 			    char *part1, char *part2, int flags, 			    Tcl_VarTraceProc *procPtr, 			    ClientData prevClientData);


# 6 "/usr/prac/se/hush/experimental/include/hush/tcl.h" 2
# 8 "/usr/prac/se/hush/experimental/include/hush/tcl.h" 

}

# 33 "/usr/prac/se/hush/experimental/include/hush/interp.h" 2

class TclInterp_cl
{
    Tcl_Interp *interp;

    friend class TclTrace_cl;

private:
    char *
    CatVarArgs (va_list  argPtr);

public:
    inline 
    TclInterp_cl () 
    {
# 50 "/usr/prac/se/hush/experimental/include/hush/interp.h" 

        interp = Tcl_CreateInterp ();

    }

    inline 
    ~TclInterp_cl () 
    { 
        Tcl_DeleteInterp (interp);
    }

    inline char *
    Result () 
    { 
        return interp->result; 
    }

    inline int 
    ErrorLine () 
    { 
        return interp->errorLine;
    }

    inline Tcl_Interp *
    GetInterp () 
    {
        return interp;
    }

   




    inline void
    AppendElement (const char *string)
    { 
        Tcl_AppendElement (interp, (char *) string);
    }

    void
    AppendResult (const char *p,
                  ...);

    inline void
    AddErrorInfo (const char *message)
    {
        Tcl_AddErrorInfo (interp, (char *)message);
    }

    inline void
    CallWhenDeleted (Tcl_InterpDeleteProc *proc,
                     ClientData            clientData)
    {
        Tcl_CallWhenDeleted (interp, proc, clientData);
    }

    inline void 
    CreateCommand (const char        *cmdName,
                   Tcl_CmdProc       *proc, 
                   ClientData         data, 
                   Tcl_CmdDeleteProc *deleteProc)
    { 
        Tcl_CreateCommand (interp, (char*) cmdName, proc, data, deleteProc);
    }

    inline void
    CreateMathFunc (const char    *name,
                    int            numArgs,
                    Tcl_ValueType *argTypes,
                    Tcl_MathProc  *proc,
                    ClientData     clientData)
    {
        Tcl_CreateMathFunc (interp, (char *) name, numArgs, argTypes,
			    proc,  clientData);
    }

    inline int
    CreatePipeline (int    argc, 
                    char **argv, 
                    int  **pidArrayPtr,
                    int   *inPipePtr, 
                    int   *outPipePtr,
                    int   *errFilePtr)
    {
        return Tcl_CreatePipeline (interp, argc, argv, pidArrayPtr, inPipePtr, 
                                   outPipePtr, errFilePtr);
    }

    inline Tcl_Trace 
    CreateTrace (int               level, 
                 Tcl_CmdTraceProc *proc, 
                 ClientData        data)
    {
        return Tcl_CreateTrace (interp, level, proc, data);
    }

    inline void 
    DeleteCommand (const char *cmdName)
    { 
        Tcl_DeleteCommand (interp, (char *)cmdName);
    }

    inline void 
    DeleteTrace (Tcl_Trace trace)
    { 
        Tcl_DeleteTrace(interp, trace);
    }

    inline void
    DetachPids (int  numPids, 
                int *pidPtr)
    {
        Tcl_DetachPids (numPids, pidPtr);
    }

    inline void
    EnterFile (struct _iobuf  *file,
               int    permissions)
    {
        Tcl_EnterFile (interp, file, permissions);
    }

# 180 "/usr/prac/se/hush/experimental/include/hush/interp.h" 

    inline void ErrorAbort(int,int) {   }


    inline int 
    Eval (char  *cmd)
    {
        return Tcl_Eval (interp, cmd);
    }

    inline int
    EvalFile (const char *fileName)
    { 
        return Tcl_EvalFile (interp, (char *) fileName);
    }

    inline int
    ExprBoolean (const char *string,
                 int        *ptr)
    {
        return Tcl_ExprBoolean (interp, (char *) string, ptr);
    }

    inline int
    ExprDouble (const char *string,
                double     *ptr)
    { 
        return Tcl_ExprDouble (interp, (char *) string, ptr);
    }

    inline int
    ExprLong (const char *string,
              long       *ptr)
    {
        return Tcl_ExprLong (interp, (char *) string, ptr);
    }

    inline int
    ExprString (const char *string)
    {
        return Tcl_ExprString (interp, (char *) string);
    }

    inline int
    GetBoolean (const char *string,
                int        *boolPtr)
    { 
        return Tcl_GetBoolean (interp, (char *) string, boolPtr);
    }

    inline int
    GetCommandInfo (const char  *cmdName,
                    Tcl_CmdInfo *infoPtr)
    {
        return Tcl_GetCommandInfo (interp, (char *) cmdName, infoPtr);
    }

    inline int
    GetDouble (const char *string,
               double     *doublePtr)
    { 
        return Tcl_GetDouble (interp, (char *) string, doublePtr);
    }

    inline int
    GetInt (const char *string,
            int        *intPtr)
    { 
        return Tcl_GetInt (interp, (char *) string, intPtr);
    }

    inline int
    GetOpenFile (const char *string,
                 int         write,
                 int         checkUsage,
                 struct _iobuf      **filePtr)
    {
        return Tcl_GetOpenFile (interp, (char *) string, write, checkUsage,
                                filePtr);
    }

    inline const char *
    GetVar (const char *varName, 
            int         flags = 0)
    { 
        return Tcl_GetVar (interp, (char *) varName, flags);
    }

    inline const char *
    GetVar2 (const char *part1, 
             const char *part2,
             int         flags = 0)
    { 
        return Tcl_GetVar2 (interp, (char *) part1, (char *) part2, flags); 
    }

    inline int
    LinkVar (const char *varName,
             char       *addr,
             int         type)
    {
        return Tcl_LinkVar (interp, (char *) varName, addr, type);
    }

    inline char *
    ParseVar (const char  *string, 
              char       **termPtr)
       { return Tcl_ParseVar (interp, (char *) string, termPtr); }

    inline const char *
    PosixError ()
    {
        return Tcl_PosixError (interp);
    }

    inline int 
    RecordAndEval (const char *cmd, 
                   char        flags)
        { return Tcl_RecordAndEval (interp, (char *) cmd, flags); }

    inline void
    ResetResult ()
    {
        Tcl_ResetResult (interp);
    }

    inline int
    SetCommandInfo (const char  *cmdName,
                    Tcl_CmdInfo *infoPtr)
    {
        return Tcl_SetCommandInfo (interp, (char *) cmdName, infoPtr);
    }

    void
    SetErrorCode (char *p, 
                  ...);

    inline int
    SetRecursionLimit (int depth)
    {
        return Tcl_SetRecursionLimit (interp, depth);
    }

    inline void 
    SetResult (const char *string)
    {
        Tcl_SetResult (interp, (char *) string, ((Tcl_FreeProc *) -1));
    }

    inline void 
    SetResult (const char   *string, 
               Tcl_FreeProc *freeProc)
    { 
        Tcl_SetResult (interp, (char *) string, freeProc);
    }

    inline const char *
    SetVar (const char  *varName, 
            const char  *newValue, 
            int          global = 0)
    { 
        return Tcl_SetVar (interp, (char *) varName, (char *) newValue, 
                           global);
    }

    inline const char *
    SetVar2 (const char *part1, 
             const char *part2, 
             const char *newValue, 
             int         global)
    {
         return Tcl_SetVar2 (interp, (char *) part1, (char *) part2, 
                             (char *) newValue, global);
    }

    inline int 
    SplitList (const char   *list,
               int          &argcPtr,
               char       **&argvPtr)
    {
        return Tcl_SplitList (interp, (char *) list, &argcPtr, &argvPtr);
    }

    inline char *
    TildeSubst (const char  *name,
                Tcl_DString *bufferPtr)
    {
        return Tcl_TildeSubst (interp, (char *) name, bufferPtr);
    }

    int
    TraceVar (const char       *varName,
              int               flags,
              Tcl_VarTraceProc *proc,
              ClientData        clientData)
    {
         return Tcl_TraceVar (interp, (char *) varName, flags, proc,
                              clientData);
    }

    inline int
    TraceVar2 (const char       *part1, 
               const char       *part2,
               int               flags, 
               Tcl_VarTraceProc *proc, 
               ClientData        clientData)
    {
         return Tcl_TraceVar2 (interp, (char *) part1, (char *) part2, flags,
                               proc, clientData); 
    }

    inline void
    UnlinkVar (const char *varName)
    {
        Tcl_UnlinkVar (interp, (char *) varName);
    }

    inline void
    UnsetVar (const char *varName,
              int         global)
    {
        Tcl_UnsetVar (interp, (char *) varName, global);
    }

    inline void
    UnsetVar2 (const char *part1, 
               const char *part2, 
               int         global)
    {
        Tcl_UnsetVar2 (interp, (char *) part1, (char *) part2, global);
    }

    inline void
    UntraceVar (const char       *varName, 
                int               flags,
                Tcl_VarTraceProc *proc, 
                ClientData        clientData)
    {
        Tcl_UntraceVar (interp, (char *) varName, flags, proc, clientData);
    }


    inline void
    UntraceVar2 (const char       *part1,
                 const char       *part2,
                 int               flags, 
                 Tcl_VarTraceProc *proc, 
                 ClientData        clientData)
    { 
        Tcl_UntraceVar2 (interp, (char *) part1, (char *) part2, flags, proc,
                         clientData);
    }

    int
    VarEval (const char *p,
              ...);

    inline ClientData
    VarTraceInfo (const char       *varName,
                  int               flags,
                  Tcl_VarTraceProc *procPtr,
                  ClientData        prevClientData)
    { 
        return Tcl_VarTraceInfo (interp, (char *) varName, flags, procPtr,
                                 prevClientData);
    }

    inline ClientData
    VarTraceInfo2 (const char       *part1, 
                   const char       *part2, 
                   int               flags,
                   Tcl_VarTraceProc *procPtr,
                   ClientData        prevClientData)
    { 
        return Tcl_VarTraceInfo2 (interp, (char *) part1, (char *) part2, 
                                  flags, procPtr, prevClientData);
    }


# 545 "/usr/prac/se/hush/experimental/include/hush/interp.h" 


};

class TclTrace_cl
{
    Tcl_Trace trace;
    Tcl_Interp *interp;

public:
    inline 
    TclTrace_cl (TclInterp_cl     &interpCl, 
                 int               level, 
                 Tcl_CmdTraceProc *proc, 
                 ClientData        data)
    { 
        trace = Tcl_CreateTrace (interp = interpCl.interp, level, proc, data);
    }

    inline ~TclTrace_cl () 
        { Tcl_DeleteTrace (interp, trace); }
};

# 622 "/usr/prac/se/hush/experimental/include/hush/interp.h" 



extern "C" {
# 1 "/usr/prac/se/hush/experimental/include/tcl-tk/minterp.h" 1
















































struct interpInfo {
	Tcl_Interp *interp;		
	char	   *name;		
	char	   *destroyHook;	
	short	    allowExec;		
	Tcl_HashTable methods;		
};

extern void   init_interp (Tcl_Interp *);
extern struct interpInfo *Int_CreateInterp 
# 59 "/usr/prac/se/hush/experimental/include/tcl-tk/minterp.h" 
( 				Tcl_Interp *, Tcl_Interp *, char *);
extern struct interpInfo *Int_findInterp (char *);
extern struct interpInfo *Int_whoIs      (Tcl_Interp *);
extern int    Int_delInterp     (Tcl_Interp *,struct interpInfo *);
extern int    Int_MainInterp    (Tcl_Interp *);
extern int    Int_ExecCommand   (Tcl_Interp *, Tcl_Interp *, int,char **);
extern void   Int_copyErrorInfo (struct interpInfo *, Tcl_Interp *);
extern int    Int_AddMethod     (struct interpInfo *, char *);
extern int    Int_DelMethod     (struct interpInfo *, char *);
extern int    Int_IsMethod      (struct interpInfo *, char *);


# 627 "/usr/prac/se/hush/experimental/include/hush/interp.h" 2
}


 

# 11 "/usr/prac/se/hush/experimental/include/hush/hclcl.h" 2











class hcl;
void init_hclCmds(hcl*);

static int count;

class hcl : public TclInterp_cl {
public:
Tcl_Interp* itp_;

public:

hcl() {   
	if (::count++ == 0) {
	itp_ = GetInterp(); init();
	}
}

~hcl() {     ; }

Tcl_Interp* interp() { return GetInterp(); }
// void interp(Tcl_Interp *p) { itp_ = p; } 

void init() { init_hclCmds(this); }

int evaluate(const char* cmd) {
	return Eval((char*)cmd);
	}

int script(const char* cmd) { return EvalFile(cmd); }

void command(const char* cmdname, Tcl_CmdProc proc,
	ClientData data = (ClientData) 0,
	Tcl_CmdDeleteProc deleteProc = (void (*)( ClientData )) 0 ) {
		//cout << "command: " << cmdname << endl;
		CreateCommand(cmdname, proc, data, deleteProc);
		}

};


# 11 "/usr/prac/se/hush/experimental/include/hush/hush.h" 2
# 1 "/usr/prac/se/hush/experimental/include/hush/tk.h" 1


extern "C" {
//#include </usr/local/lang/tk/include/tk.h>
# 1 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 1




































# 39 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 


# 1 "/usr/include/X11/Xlib.h" 1





























# 35 "/usr/include/X11/Xlib.h" 

# 40 "/usr/include/X11/Xlib.h" 

# 1 "/usr/local/lang/CC/include/sys/types.h" 1


# 136 "/usr/local/lang/CC/include/sys/types.h" 


# 42 "/usr/include/X11/Xlib.h" 2



# 1 "/usr/include/X11/X.h" 1





































typedef unsigned long XID;

typedef XID Window;
typedef XID Drawable;
typedef XID Font;
typedef XID Pixmap;
typedef XID Cursor;
typedef XID Colormap;
typedef XID GContext;
typedef XID KeySym;

typedef unsigned long Mask;

typedef unsigned long Atom;

typedef unsigned long VisualID;

typedef unsigned long Time;

typedef unsigned char KeyCode;

































































































































































		       
























































































































































































































































































































































































































































# 46 "/usr/include/X11/Xlib.h" 2


# 1 "/usr/include/X11/Xfuncproto.h" 1
























# 27 "/usr/include/X11/Xfuncproto.h" 






# 35 "/usr/include/X11/Xfuncproto.h" 








# 45 "/usr/include/X11/Xfuncproto.h" 






# 53 "/usr/include/X11/Xfuncproto.h" 




# 59 "/usr/include/X11/Xfuncproto.h" 











# 73 "/usr/include/X11/Xfuncproto.h" 




# 49 "/usr/include/X11/Xlib.h" 2
# 1 "/usr/include/X11/Xosdefs.h" 1





































# 41 "/usr/include/X11/Xosdefs.h" 


# 47 "/usr/include/X11/Xosdefs.h" 


# 52 "/usr/include/X11/Xosdefs.h" 


# 56 "/usr/include/X11/Xosdefs.h" 


# 63 "/usr/include/X11/Xosdefs.h" 


# 68 "/usr/include/X11/Xosdefs.h" 


# 73 "/usr/include/X11/Xosdefs.h" 

  
# 80 "/usr/include/X11/Xosdefs.h" 


# 87 "/usr/include/X11/Xosdefs.h" 


# 93 "/usr/include/X11/Xosdefs.h" 



# 50 "/usr/include/X11/Xlib.h" 2


# 54 "/usr/include/X11/Xlib.h" 




# 1 "/usr/local/lang/CC/include/stddef.h" 1
# 14 "/usr/local/lang/CC/include/stddef.h" 

# 59 "/usr/include/X11/Xlib.h" 2
# 62 "/usr/include/X11/Xlib.h" 


typedef char *XPointer;



































































typedef struct _XExtData {
	int number;		
	struct _XExtData *next;	
	int (*free_private)();	
	XPointer private_data;	
} XExtData;




typedef struct {		
	int extension;		
	int major_opcode;	
	int first_event;	
	int first_error;	
} XExtCodes;





typedef struct {
    int depth;
    int bits_per_pixel;
    int scanline_pad;
} XPixmapFormatValues;





typedef struct {
	int function;		
	unsigned long plane_mask;
	unsigned long foreground;
	unsigned long background;
	int line_width;		
	int line_style;	 	
	int cap_style;	  	

	int join_style;	 	
	int fill_style;	 	

	int fill_rule;	  	
	int arc_mode;		
	Pixmap tile;		
	Pixmap stipple;		
	int ts_x_origin;	
	int ts_y_origin;
        Font font;	        
	int subwindow_mode;     
	int graphics_exposures;
	int clip_x_origin;	
	int clip_y_origin;
	Pixmap clip_mask;	
	int dash_offset;	
	char dashes;
} XGCValues;






typedef struct _XGC {
    XExtData *ext_data;	
    GContext gid;	
    int rects;		
    int dashes;	
    unsigned long dirty;
    XGCValues values;	
} *GC;





typedef struct {
	XExtData *ext_data;	
	VisualID visualid;	

	int c_class;		
# 216 "/usr/include/X11/Xlib.h" 

	unsigned long red_mask, green_mask, blue_mask;	
	int bits_per_rgb;	
	int map_entries;	
} Visual;



	
typedef struct {
	int depth;		
	int nvisuals;		
	Visual *visuals;	
} Depth;






typedef struct {
	XExtData *ext_data;	
	struct _XDisplay *display;
	Window root;		
	int width, height;	
	int mwidth, mheight;	
	int ndepths;		
	Depth *depths;		
	int root_depth;		
	Visual *root_visual;	
	GC default_gc;		
	Colormap cmap;		
	unsigned long white_pixel;
	unsigned long black_pixel;	
	int max_maps, min_maps;	
	int backing_store;	
	int save_unders;	
	long root_input_mask;	
} Screen;




typedef struct {
	XExtData *ext_data;	
	int depth;		
	int bits_per_pixel;	
	int scanline_pad;	
} ScreenFormat;




typedef struct {
    Pixmap background_pixmap;	
    unsigned long background_pixel;	
    Pixmap border_pixmap;	
    unsigned long border_pixel;	
    int bit_gravity;		
    int win_gravity;		
    int backing_store;		
    unsigned long backing_planes;
    unsigned long backing_pixel;
    int save_under;		
    long event_mask;		
    long do_not_propagate_mask;	
    int override_redirect;	
    Colormap colormap;		
    Cursor cursor;		
} XSetWindowAttributes;

typedef struct {
    int x, y;			
    int width, height;		
    int border_width;		
    int depth;          	
    Visual *visual;		
    Window root;        	

    int c_class;		
# 298 "/usr/include/X11/Xlib.h" 

    int bit_gravity;		
    int win_gravity;		
    int backing_store;		
    unsigned long backing_planes;
    unsigned long backing_pixel;
    int save_under;		
    Colormap colormap;		
    int map_installed;		
    int map_state;		
    long all_event_masks;	
    long your_event_mask;	
    long do_not_propagate_mask; 
    int override_redirect;	
    Screen *screen;		
} XWindowAttributes;






typedef struct {
	int family;		
	int length;		
	char *address;		
} XHostAddress;




typedef struct _XImage {
    int width, height;		
    int xoffset;		
    int format;			
    char *data;			
    int byte_order;		
    int bitmap_unit;		
    int bitmap_bit_order;	
    int bitmap_pad;		
    int depth;			
    int bytes_per_line;		
    int bits_per_pixel;		
    unsigned long red_mask;	
    unsigned long green_mask;
    unsigned long blue_mask;
    XPointer obdata;		
    struct funcs {		
	struct _XImage *(*create_image)();

	int (*destroy_image)        (struct _XImage *);
	unsigned long (*get_pixel)  (struct _XImage *, int, int);
	int (*put_pixel)            (struct _XImage *, int, int, unsigned long);
	struct _XImage *(*sub_image)(struct _XImage *, int, int, unsigned int, unsigned int);
	int (*add_pixel)            (struct _XImage *, long);
# 359 "/usr/include/X11/Xlib.h" 

	} f;
} XImage;




typedef struct {
    int x, y;
    int width, height;
    int border_width;
    Window sibling;
    int stack_mode;
} XWindowChanges;




typedef struct {
	unsigned long pixel;
	unsigned short red, green, blue;
	char flags;  
	char pad;
} XColor;






typedef struct {
    short x1, y1, x2, y2;
} XSegment;

typedef struct {
    short x, y;
} XPoint;
    
typedef struct {
    short x, y;
    unsigned short width, height;
} XRectangle;
    
typedef struct {
    short x, y;
    unsigned short width, height;
    short angle1, angle2;
} XArc;




typedef struct {
        int key_click_percent;
        int bell_percent;
        int bell_pitch;
        int bell_duration;
        int led;
        int led_mode;
        int key;
        int auto_repeat_mode;   
} XKeyboardControl;



typedef struct {
        int key_click_percent;
	int bell_percent;
	unsigned int bell_pitch, bell_duration;
	unsigned long led_mask;
	int global_auto_repeat;
	char auto_repeats[32];
} XKeyboardState;



typedef struct {
        Time time;
	short x, y;
} XTimeCoord;



typedef struct {
 	int max_keypermod;	
 	KeyCode *modifiermap;	
} XModifierKeymap;






typedef struct _XDisplay {
	XExtData *ext_data;	
	struct _XFreeFuncs *free_funcs; 
	int fd;			
	int lock;		
	int proto_major_version;
	int proto_minor_version;
	char *vendor;		
        XID resource_base;	
	XID resource_mask;	
	XID resource_id;	
	int resource_shift;	
	XID (*resource_alloc)(); 
	int byte_order;		
	int bitmap_unit;	
	int bitmap_pad;		
	int bitmap_bit_order;	
	int nformats;		
	ScreenFormat *pixmap_format;	
	int vnumber;		
	int release;		
	struct _XSQEvent *head, *tail;	
	int qlen;		
	unsigned long last_request_read; 
	unsigned long request;	
	char *last_req;		
	char *buffer;		
	char *bufptr;		
	char *bufmax;		
	unsigned max_request_size; 
	struct _XrmHashBucketRec *db;
	int (*synchandler)();	
	char *display_name;	
	int default_screen;	
	int nscreens;		
	Screen *screens;	
	unsigned long motion_buffer;	
	Window current;		
	int min_keycode;	
	int max_keycode;	
	KeySym *keysyms;	
	XModifierKeymap *modifiermap;	
	int keysyms_per_keycode;
	char *xdefaults;	
	char *scratch_buffer;	
	unsigned long scratch_length;	
	int ext_number;		
	struct _XExten *ext_procs; 
	







	int (*event_vec[128])();  
	int (*wire_vec[128])(); 
	KeySym lock_meaning;	   
	struct _XKeytrans *key_bindings; 
	Font cursor_font;	   
	struct _XDisplayAtoms *atoms; 
	struct {		   
	    long sequence_number;
	    int (*old_handler)();
	    int succeeded;
	} reconfigure_wm_window;
	unsigned long flags;	   
	unsigned int mode_switch;  
	struct _XContextDB *context_db; 
	int (**error_vec)();      
	


	struct {
	   XPointer defaultCCCs;  
	   XPointer clientCmaps;  
	   XPointer perVisualIntensityMaps;
				  
	} cms;
	int conn_checker;         
	struct _XIMFilter *im_filters;
} Display;








typedef struct {
	int type;		
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;	        
	Window root;	        
	Window subwindow;	
	Time time;		
	int x, y;		
	int x_root, y_root;	
	unsigned int state;	
	unsigned int keycode;	
	int same_screen;	
} XKeyEvent;
typedef XKeyEvent XKeyPressedEvent;
typedef XKeyEvent XKeyReleasedEvent;

typedef struct {
	int type;		
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;	        
	Window root;	        
	Window subwindow;	
	Time time;		
	int x, y;		
	int x_root, y_root;	
	unsigned int state;	
	unsigned int button;	
	int same_screen;	
} XButtonEvent;
typedef XButtonEvent XButtonPressedEvent;
typedef XButtonEvent XButtonReleasedEvent;

typedef struct {
	int type;		
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;	        
	Window root;	        
	Window subwindow;	
	Time time;		
	int x, y;		
	int x_root, y_root;	
	unsigned int state;	
	char is_hint;		
	int same_screen;	
} XMotionEvent;
typedef XMotionEvent XPointerMovedEvent;

typedef struct {
	int type;		
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;	        
	Window root;	        
	Window subwindow;	
	Time time;		
	int x, y;		
	int x_root, y_root;	
	int mode;		
	int detail;
	



	int same_screen;	
	int focus;		
	unsigned int state;	
} XCrossingEvent;
typedef XCrossingEvent XEnterWindowEvent;
typedef XCrossingEvent XLeaveWindowEvent;

typedef struct {
	int type;		
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;		
	int mode;		
	int detail;
	




} XFocusChangeEvent;
typedef XFocusChangeEvent XFocusInEvent;
typedef XFocusChangeEvent XFocusOutEvent;


typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;
	char key_vector[32];
} XKeymapEvent;	

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;
	int x, y;
	int width, height;
	int count;		
} XExposeEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Drawable drawable;
	int x, y;
	int width, height;
	int count;		
	int major_code;		
	int minor_code;		
} XGraphicsExposeEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Drawable drawable;
	int major_code;		
	int minor_code;		
} XNoExposeEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;
	int state;		
} XVisibilityEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window parent;		
	Window window;		
	int x, y;		
	int width, height;	
	int border_width;	
	int override_redirect;	
} XCreateWindowEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window event;
	Window window;
} XDestroyWindowEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window event;
	Window window;
	int from_configure;
} XUnmapEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window event;
	Window window;
	int override_redirect;	
} XMapEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window parent;
	Window window;
} XMapRequestEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window event;
	Window window;
	Window parent;
	int x, y;
	int override_redirect;
} XReparentEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window event;
	Window window;
	int x, y;
	int width, height;
	int border_width;
	Window above;
	int override_redirect;
} XConfigureEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window event;
	Window window;
	int x, y;
} XGravityEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;
	int width, height;
} XResizeRequestEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window parent;
	Window window;
	int x, y;
	int width, height;
	int border_width;
	Window above;
	int detail;		
	unsigned long value_mask;
} XConfigureRequestEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window event;
	Window window;
	int place;		
} XCirculateEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window parent;
	Window window;
	int place;		
} XCirculateRequestEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;
	Atom atom;
	Time time;
	int state;		
} XPropertyEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;
	Atom selection;
	Time time;
} XSelectionClearEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window owner;
	Window requestor;
	Atom selection;
	Atom target;
	Atom property;
	Time time;
} XSelectionRequestEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window requestor;
	Atom selection;
	Atom target;
	Atom property;		
	Time time;
} XSelectionEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;
	Colormap colormap;	

	int c_new;		
# 878 "/usr/include/X11/Xlib.h" 

	int state;		
} XColormapEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;
	Atom message_type;
	int format;
	union {
		char b[20];
		short s[10];
		long l[5];
		} data;
} XClientMessageEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;	
	Window window;		
	int request;		

	int first_keycode;	
	int count;		
} XMappingEvent;

typedef struct {
	int type;
	Display *display;	
	XID resourceid;		
	unsigned long serial;	
	unsigned char error_code;	
	unsigned char request_code;	
	unsigned char minor_code;	
} XErrorEvent;

typedef struct {
	int type;
	unsigned long serial;	
	int send_event;	
	Display *display;
	Window window;	
} XAnyEvent;





typedef union _XEvent {
        int type;		
	XAnyEvent xany;
	XKeyEvent xkey;
	XButtonEvent xbutton;
	XMotionEvent xmotion;
	XCrossingEvent xcrossing;
	XFocusChangeEvent xfocus;
	XExposeEvent xexpose;
	XGraphicsExposeEvent xgraphicsexpose;
	XNoExposeEvent xnoexpose;
	XVisibilityEvent xvisibility;
	XCreateWindowEvent xcreatewindow;
	XDestroyWindowEvent xdestroywindow;
	XUnmapEvent xunmap;
	XMapEvent xmap;
	XMapRequestEvent xmaprequest;
	XReparentEvent xreparent;
	XConfigureEvent xconfigure;
	XGravityEvent xgravity;
	XResizeRequestEvent xresizerequest;
	XConfigureRequestEvent xconfigurerequest;
	XCirculateEvent xcirculate;
	XCirculateRequestEvent xcirculaterequest;
	XPropertyEvent xproperty;
	XSelectionClearEvent xselectionclear;
	XSelectionRequestEvent xselectionrequest;
	XSelectionEvent xselection;
	XColormapEvent xcolormap;
	XClientMessageEvent xclient;
	XMappingEvent xmapping;
	XErrorEvent xerror;
	XKeymapEvent xkeymap;
	long pad[24];
} XEvent;







typedef struct {
    short	lbearing;	
    short	rbearing;	
    short	width;		
    short	ascent;		
    short	descent;	
    unsigned short attributes;	
} XCharStruct;





typedef struct {
    Atom name;
    unsigned long card32;
} XFontProp;

typedef struct {
    XExtData	*ext_data;	
    Font        fid;            
    unsigned	direction;	
    unsigned	min_char_or_byte2;
    unsigned	max_char_or_byte2;
    unsigned	min_byte1;	
    unsigned	max_byte1;	
    int	all_chars_exist;
    unsigned	default_char;	
    int         n_properties;   
    XFontProp	*properties;	
    XCharStruct	min_bounds;	
    XCharStruct	max_bounds;	
    XCharStruct	*per_char;	
    int		ascent;		
    int		descent;	
} XFontStruct;




typedef struct {
    char *chars;		
    int nchars;			
    int delta;			
    Font font;			
} XTextItem;

typedef struct {		
    unsigned char byte1;
    unsigned char byte2;
} XChar2b;

typedef struct {
    XChar2b *chars;		
    int nchars;			
    int delta;			
    Font font;			
} XTextItem16;


typedef union { Display *display;
		GC gc;
		Visual *visual;
		Screen *screen;
		ScreenFormat *pixmap_format;
		XFontStruct *font; } XEDataObject;

typedef struct {
    XRectangle      max_ink_extent;
    XRectangle      max_logical_extent;
} XFontSetExtents;

typedef struct _XFontSet *XFontSet;

typedef struct {
    char           *chars;
    int             nchars;
    int             delta;
    XFontSet        font_set;
} XmbTextItem;

typedef struct {
    wchar_t        *chars;
    int             nchars;
    int             delta;
    XFontSet        font_set;
} XwcTextItem;

typedef void (*XIMProc)();

typedef struct _XIM *XIM;
typedef struct _XIC *XIC;

typedef unsigned long XIMStyle;

typedef struct {
    unsigned short count_styles;
    XIMStyle *supported_styles;
} XIMStyles;
















































typedef void *XVaNestedList;
# 1123 "/usr/include/X11/Xlib.h" 


typedef struct {
    XPointer client_data;
    XIMProc callback;
} XIMCallback;

typedef unsigned long XIMFeedback;








typedef struct _XIMText {
    unsigned short length;
    XIMFeedback *feedback;
    int encoding_is_wchar; 
    union {
	char *multi_byte;
	wchar_t *wide_char;
    } string; 
} XIMText;

typedef struct _XIMPreeditDrawCallbackStruct {
    int caret;		
    int chg_first;	
    int chg_length;	
    XIMText *text;
} XIMPreeditDrawCallbackStruct;

typedef enum {
    XIMForwardChar, XIMBackwardChar,
    XIMForwardWord, XIMBackwardWord,
    XIMCaretUp, XIMCaretDown,
    XIMNextLine, XIMPreviousLine,
    XIMLineStart, XIMLineEnd, 
    XIMAbsolutePosition,
    XIMDontChange
} XIMCaretDirection;

typedef enum {
    XIMIsInvisible,	 
    XIMIsPrimary,	
    XIMIsSecondary	
} XIMCaretStyle;

typedef struct _XIMPreeditCaretCallbackStruct {
    int position;		 
    XIMCaretDirection direction; 
    XIMCaretStyle style;	 
} XIMPreeditCaretCallbackStruct;

typedef enum {
    XIMTextType,
    XIMBitmapType
} XIMStatusDataType;
	
typedef struct _XIMStatusDrawCallbackStruct {
    XIMStatusDataType type;
    union {
	XIMText *text;
	Pixmap  bitmap;
    } data;
} XIMStatusDrawCallbackStruct;

extern "C" {

extern XFontStruct *XLoadQueryFont(

    Display*		,
    const char*	

);

extern XFontStruct *XQueryFont(

    Display*		,
    XID			

);


extern XTimeCoord *XGetMotionEvents(

    Display*		,
    Window		,
    Time		,
    Time		,
    int*		

);

extern XModifierKeymap *XDeleteModifiermapEntry(

    XModifierKeymap*	,

    unsigned int	,
# 1225 "/usr/include/X11/Xlib.h" 

    int			

);

extern XModifierKeymap	*XGetModifierMapping(

    Display*		

);

extern XModifierKeymap	*XInsertModifiermapEntry(

    XModifierKeymap*	,

    unsigned int	,
# 1243 "/usr/include/X11/Xlib.h" 

    int			    

);

extern XModifierKeymap *XNewModifiermap(

    int			

);

extern XImage *XCreateImage(

    Display*		,
    Visual*		,
    unsigned int	,
    int			,
    int			,
    char*		,
    unsigned int	,
    unsigned int	,
    int			,
    int			

);
extern XImage *XGetImage(

    Display*		,
    Drawable		,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    unsigned long	,
    int			

);
extern XImage *XGetSubImage(

    Display*		,
    Drawable		,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    unsigned long	,
    int			,
    XImage*		,
    int			,
    int			

);




extern Display *XOpenDisplay(

    const char*	

);

extern void XrmInitialize(

    void

);

extern char *XFetchBytes(

    Display*		,
    int*		

);
extern char *XFetchBuffer(

    Display*		,
    int*		,
    int			

);
extern char *XGetAtomName(

    Display*		,
    Atom		

);
extern char *XGetDefault(

    Display*		,
    const char*	,
    const char*			  

);
extern char *XDisplayName(

    const char*	

);
extern char *XKeysymToString(

    KeySym		

);

extern int (*XSynchronize(

    Display*		,
    int		

))();
extern int (*XSetAfterFunction(

    Display*		,
    int (*) (

	     Display*	

            )		

))();
extern Atom XInternAtom(

    Display*		,
    const char*	,
    int				 

);
extern Colormap XCopyColormapAndFree(

    Display*		,
    Colormap		

);
extern Colormap XCreateColormap(

    Display*		,
    Window		,
    Visual*		,
    int						 

);
extern Cursor XCreatePixmapCursor(

    Display*		,
    Pixmap		,
    Pixmap		,
    XColor*		,
    XColor*		,
    unsigned int	,
    unsigned int				   

);
extern Cursor XCreateGlyphCursor(

    Display*		,
    Font		,
    Font		,
    unsigned int	,
    unsigned int	,
    XColor*		,
    XColor*		

);
extern Cursor XCreateFontCursor(

    Display*		,
    unsigned int	

);
extern Font XLoadFont(

    Display*		,
    const char*	

);
extern GC XCreateGC(

    Display*		,
    Drawable		,
    unsigned long	,
    XGCValues*		

);
extern GContext XGContextFromGC(

    GC			

);
extern void XFlushGC(

    Display*		,
    GC			

);
extern Pixmap XCreatePixmap(

    Display*		,
    Drawable		,
    unsigned int	,
    unsigned int	,
    unsigned int			        

);
extern Pixmap XCreateBitmapFromData(

    Display*		,
    Drawable		,
    const char*	,
    unsigned int	,
    unsigned int	

);
extern Pixmap XCreatePixmapFromBitmapData(

    Display*		,
    Drawable		,
    char*		,
    unsigned int	,
    unsigned int	,
    unsigned long	,
    unsigned long	,
    unsigned int	

);
extern Window XCreateSimpleWindow(

    Display*		,
    Window		,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    unsigned int	,
    unsigned long	,
    unsigned long	

);
extern Window XGetSelectionOwner(

    Display*		,
    Atom		

);
extern Window XCreateWindow(

    Display*		,
    Window		,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    unsigned int	,
    int			,
    unsigned int	,
    Visual*		,
    unsigned long	,
    XSetWindowAttributes*	

); 
extern Colormap *XListInstalledColormaps(

    Display*		,
    Window		,
    int*		

);
extern char **XListFonts(

    Display*		,
    const char*	,
    int			,
    int*		

);
extern char **XListFontsWithInfo(

    Display*		,
    const char*	,
    int			,
    int*		,
    XFontStruct**	

);
extern char **XGetFontPath(

    Display*		,
    int*		

);
extern char **XListExtensions(

    Display*		,
    int*		

);
extern Atom *XListProperties(

    Display*		,
    Window		,
    int*		

);
extern XHostAddress *XListHosts(

    Display*		,
    int*		,
    int*		

);
extern KeySym XKeycodeToKeysym(

    Display*		,

    unsigned int	,
# 1560 "/usr/include/X11/Xlib.h" 

    int			

);
extern KeySym XLookupKeysym(

    XKeyEvent*		,
    int			

);
extern KeySym *XGetKeyboardMapping(

    Display*		,

    unsigned int	,
# 1577 "/usr/include/X11/Xlib.h" 

    int			,
    int*		

);
extern KeySym XStringToKeysym(

    const char*	

);
extern long XMaxRequestSize(

    Display*		

);
extern char *XResourceManagerString(

    Display*		

);
extern char *XScreenResourceString(

	Screen*		

);
extern unsigned long XDisplayMotionBufferSize(

    Display*		

);
extern VisualID XVisualIDFromVisual(

    Visual*		

);



extern XExtCodes *XInitExtension(

    Display*		,
    const char*	

);

extern XExtCodes *XAddExtension(

    Display*		

);
extern XExtData *XFindOnExtensionList(

    XExtData**		,
    int			

);
extern XExtData **XEHeadOfExtensionList(

    XEDataObject	

);


extern Window XRootWindow(

    Display*		,
    int			

);
extern Window XDefaultRootWindow(

    Display*		

);
extern Window XRootWindowOfScreen(

    Screen*		

);
extern Visual *XDefaultVisual(

    Display*		,
    int			

);
extern Visual *XDefaultVisualOfScreen(

    Screen*		

);
extern GC XDefaultGC(

    Display*		,
    int			

);
extern GC XDefaultGCOfScreen(

    Screen*		

);
extern unsigned long XBlackPixel(

    Display*		,
    int			

);
extern unsigned long XWhitePixel(

    Display*		,
    int			

);
extern unsigned long XAllPlanes(

    void

);
extern unsigned long XBlackPixelOfScreen(

    Screen*		

);
extern unsigned long XWhitePixelOfScreen(

    Screen*		

);
extern unsigned long XNextRequest(

    Display*		

);
extern unsigned long XLastKnownRequestProcessed(

    Display*		

);
extern char *XServerVendor(

    Display*		

);
extern char *XDisplayString(

    Display*		

);
extern Colormap XDefaultColormap(

    Display*		,
    int			

);
extern Colormap XDefaultColormapOfScreen(

    Screen*		

);
extern Display *XDisplayOfScreen(

    Screen*		

);
extern Screen *XScreenOfDisplay(

    Display*		,
    int			

);
extern Screen *XDefaultScreenOfDisplay(

    Display*		

);
extern long XEventMaskOfScreen(

    Screen*		

);

extern int XScreenNumberOfScreen(

    Screen*		

);

typedef int (*XErrorHandler) (	    

    Display*		,
    XErrorEvent*	

);

extern XErrorHandler XSetErrorHandler (

    XErrorHandler	

);


typedef int (*XIOErrorHandler) (    

    Display*		

);

extern XIOErrorHandler XSetIOErrorHandler (

    XIOErrorHandler	

);


extern XPixmapFormatValues *XListPixmapFormats(

    Display*		,
    int*		

);
extern int *XListDepths(

    Display*		,
    int			,
    int*		

);



extern int XReconfigureWMWindow(

    Display*		,
    Window		,
    int			,
    unsigned int	,
    XWindowChanges*	

);

extern int XGetWMProtocols(

    Display*		,
    Window		,
    Atom**		,
    int*		

);
extern int XSetWMProtocols(

    Display*		,
    Window		,
    Atom*		,
    int			

);
extern int XIconifyWindow(

    Display*		,
    Window		,
    int			

);
extern int XWithdrawWindow(

    Display*		,
    Window		,
    int			

);
extern int XGetCommand(

    Display*		,
    Window		,
    char***		,
    int*		

);
extern int XGetWMColormapWindows(

    Display*		,
    Window		,
    Window**		,
    int*		

);
extern int XSetWMColormapWindows(

    Display*		,
    Window		,
    Window*		,
    int			

);
extern void XFreeStringList(

    char**		

);
extern XSetTransientForHint(

    Display*		,
    Window		,
    Window		

);



extern XActivateScreenSaver(

    Display*		

);

extern XAddHost(

    Display*		,
    XHostAddress*	

);

extern XAddHosts(

    Display*		,
    XHostAddress*	,
    int			    

);

extern XAddToExtensionList(

    struct _XExtData**	,
    XExtData*		

);

extern XAddToSaveSet(

    Display*		,
    Window		

);

extern int XAllocColor(

    Display*		,
    Colormap		,
    XColor*		

);

extern int XAllocColorCells(

    Display*		,
    Colormap		,
    int	        ,
    unsigned long*	,
    unsigned int	,
    unsigned long*	,
    unsigned int 	

);

extern int XAllocColorPlanes(

    Display*		,
    Colormap		,
    int		,
    unsigned long*	,
    int			,
    int			,
    int			,
    int			,
    unsigned long*	,
    unsigned long*	,
    unsigned long*	

);

extern int XAllocNamedColor(

    Display*		,
    Colormap		,
    const char*	,
    XColor*		,
    XColor*		

);

extern XAllowEvents(

    Display*		,
    int			,
    Time		

);

extern XAutoRepeatOff(

    Display*		

);

extern XAutoRepeatOn(

    Display*		

);

extern XBell(

    Display*		,
    int			

);

extern int XBitmapBitOrder(

    Display*		

);

extern int XBitmapPad(

    Display*		

);

extern int XBitmapUnit(

    Display*		

);

extern int XCellsOfScreen(

    Screen*		

);

extern XChangeActivePointerGrab(

    Display*		,
    unsigned int	,
    Cursor		,
    Time		

);

extern XChangeGC(

    Display*		,
    GC			,
    unsigned long	,
    XGCValues*		

);

extern XChangeKeyboardControl(

    Display*		,
    unsigned long	,
    XKeyboardControl*	

);

extern XChangeKeyboardMapping(

    Display*		,
    int			,
    int			,
    KeySym*		,
    int			

);

extern XChangePointerControl(

    Display*		,
    int		,
    int		,
    int			,
    int			,
    int			

);

extern XChangeProperty(

    Display*		,
    Window		,
    Atom		,
    Atom		,
    int			,
    int			,
    const unsigned char*	,
    int			

);

extern XChangeSaveSet(

    Display*		,
    Window		,
    int			

);

extern XChangeWindowAttributes(

    Display*		,
    Window		,
    unsigned long	,
    XSetWindowAttributes* 

);

extern int XCheckIfEvent(

    Display*		,
    XEvent*		,
    int (*) (

	       Display*			,
               XEvent*			,
               XPointer			

             )		,
    XPointer		

);

extern int XCheckMaskEvent(

    Display*		,
    long		,
    XEvent*		

);

extern int XCheckTypedEvent(

    Display*		,
    int			,
    XEvent*		

);

extern int XCheckTypedWindowEvent(

    Display*		,
    Window		,
    int			,
    XEvent*		

);

extern int XCheckWindowEvent(

    Display*		,
    Window		,
    long		,
    XEvent*		

);

extern XCirculateSubwindows(

    Display*		,
    Window		,
    int			

);

extern XCirculateSubwindowsDown(

    Display*		,
    Window		

);

extern XCirculateSubwindowsUp(

    Display*		,
    Window		

);

extern XClearArea(

    Display*		,
    Window		,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    int		

);

extern XClearWindow(

    Display*		,
    Window		

);

extern XCloseDisplay(

    Display*		

);

extern XConfigureWindow(

    Display*		,
    Window		,
    unsigned int	,
    XWindowChanges*			 

);

extern int XConnectionNumber(

    Display*		

);

extern XConvertSelection(

    Display*		,
    Atom		,
    Atom 		,
    Atom		,
    Window		,
    Time		

);

extern XCopyArea(

    Display*		,
    Drawable		,
    Drawable		,
    GC			,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    int			,
    int			

);

extern XCopyGC(

    Display*		,
    GC			,
    unsigned long	,
    GC			

);

extern XCopyPlane(

    Display*		,
    Drawable		,
    Drawable		,
    GC			,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    int			,
    int			,
    unsigned long	

);

extern int XDefaultDepth(

    Display*		,
    int			

);

extern int XDefaultDepthOfScreen(

    Screen*		

);

extern int XDefaultScreen(

    Display*		

);

extern XDefineCursor(

    Display*		,
    Window		,
    Cursor		

);

extern XDeleteProperty(

    Display*		,
    Window		,
    Atom		

);

extern XDestroyWindow(

    Display*		,
    Window		

);

extern XDestroySubwindows(

    Display*		,
    Window		

);

extern int XDoesBackingStore(

    Screen*		    

);

extern int XDoesSaveUnders(

    Screen*		

);

extern XDisableAccessControl(

    Display*		

);


extern int XDisplayCells(

    Display*		,
    int			

);

extern int XDisplayHeight(

    Display*		,
    int			

);

extern int XDisplayHeightMM(

    Display*		,
    int			

);

extern XDisplayKeycodes(

    Display*		,
    int*		,
    int*		

);

extern int XDisplayPlanes(

    Display*		,
    int			

);

extern int XDisplayWidth(

    Display*		,
    int			

);

extern int XDisplayWidthMM(

    Display*		,
    int			

);

extern XDrawArc(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    int			,
    int			

);

extern XDrawArcs(

    Display*		,
    Drawable		,
    GC			,
    XArc*		,
    int			

);

extern XDrawImageString(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    const char*	,
    int			

);

extern XDrawImageString16(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    const XChar2b*	,
    int			

);

extern XDrawLine(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    int			,
    int			

);

extern XDrawLines(

    Display*		,
    Drawable		,
    GC			,
    XPoint*		,
    int			,
    int			

);

extern XDrawPoint(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			

);

extern XDrawPoints(

    Display*		,
    Drawable		,
    GC			,
    XPoint*		,
    int			,
    int			

);

extern XDrawRectangle(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    unsigned int	,
    unsigned int	

);

extern XDrawRectangles(

    Display*		,
    Drawable		,
    GC			,
    XRectangle*		,
    int			

);

extern XDrawSegments(

    Display*		,
    Drawable		,
    GC			,
    XSegment*		,
    int			

);

extern XDrawString(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    const char*	,
    int			

);

extern XDrawString16(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    const XChar2b*	,
    int			

);

extern XDrawText(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    XTextItem*		,
    int			

);

extern XDrawText16(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    XTextItem16*	,
    int			

);

extern XEnableAccessControl(

    Display*		

);

extern int XEventsQueued(

    Display*		,
    int			

);

extern int XFetchName(

    Display*		,
    Window		,
    char**		

);

extern XFillArc(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    int			,
    int			

);

extern XFillArcs(

    Display*		,
    Drawable		,
    GC			,
    XArc*		,
    int			

);

extern XFillPolygon(

    Display*		,
    Drawable		,
    GC			,
    XPoint*		,
    int			,
    int			,
    int			

);

extern XFillRectangle(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    unsigned int	,
    unsigned int	

);

extern XFillRectangles(

    Display*		,
    Drawable		,
    GC			,
    XRectangle*		,
    int			

);

extern XFlush(

    Display*		

);

extern XForceScreenSaver(

    Display*		,
    int			

);

extern XFree(

    void*		

);

extern XFreeColormap(

    Display*		,
    Colormap		

);

extern XFreeColors(

    Display*		,
    Colormap		,
    unsigned long*	,
    int			,
    unsigned long	

);

extern XFreeCursor(

    Display*		,
    Cursor		

);

extern XFreeExtensionList(

    char**		    

);

extern XFreeFont(

    Display*		,
    XFontStruct*	

);

extern XFreeFontInfo(

    char**		,
    XFontStruct*	,
    int			

);

extern XFreeFontNames(

    char**		

);

extern XFreeFontPath(

    char**		

);

extern XFreeGC(

    Display*		,
    GC			

);

extern XFreeModifiermap(

    XModifierKeymap*	

);

extern XFreePixmap(

    Display*		,
    Pixmap		

);

extern int XGeometry(

    Display*		,
    int			,
    const char*	,
    const char*	,
    unsigned int	,
    unsigned int	,
    unsigned int	,
    int			,
    int			,
    int*		,
    int*		,
    int*		,
    int*		

);

extern XGetErrorDatabaseText(

    Display*		,
    const char*	,
    const char*	,
    const char*	,
    char*		,
    int			

);

extern XGetErrorText(

    Display*		,
    int			,
    char*		,
    int			

);

extern int XGetFontProperty(

    XFontStruct*	,
    Atom		,
    unsigned long*	

);

extern int XGetGCValues(

    Display*		,
    GC			,
    unsigned long	,
    XGCValues*		

);

extern int XGetGeometry(

    Display*		,
    Drawable		,
    Window*		,
    int*		,
    int*		,
    unsigned int*	,
    unsigned int*	,
    unsigned int*	,
    unsigned int*	

);

extern int XGetIconName(

    Display*		,
    Window		,
    char**		

);

extern XGetInputFocus(

    Display*		,
    Window*		,
    int*		

);

extern XGetKeyboardControl(

    Display*		,
    XKeyboardState*	

);

extern XGetPointerControl(

    Display*		,
    int*		,
    int*		,
    int*		

);

extern int XGetPointerMapping(

    Display*		,
    unsigned char*	,
    int			

);

extern XGetScreenSaver(

    Display*		,
    int*		,
    int*		,
    int*		,
    int*		

);

extern int XGetTransientForHint(

    Display*		,
    Window		,
    Window*		

);

extern int XGetWindowProperty(

    Display*		,
    Window		,
    Atom		,
    long		,
    long		,
    int		,
    Atom		,
    Atom*		,
    int*		,
    unsigned long*	,
    unsigned long*	,
    unsigned char**	

);

extern int XGetWindowAttributes(

    Display*		,
    Window		,
    XWindowAttributes*	

);

extern XGrabButton(

    Display*		,
    unsigned int	,
    unsigned int	,
    Window		,
    int		,
    unsigned int	,
    int			,
    int			,
    Window		,
    Cursor		

);

extern XGrabKey(

    Display*		,
    int			,
    unsigned int	,
    Window		,
    int		,
    int			,
    int			

);

extern int XGrabKeyboard(

    Display*		,
    Window		,
    int		,
    int			,
    int			,
    Time		

);

extern int XGrabPointer(

    Display*		,
    Window		,
    int		,
    unsigned int	,
    int			,
    int			,
    Window		,
    Cursor		,
    Time		

);

extern XGrabServer(

    Display*		

);

extern int XHeightMMOfScreen(

    Screen*		

);

extern int XHeightOfScreen(

    Screen*		

);

extern XIfEvent(

    Display*		,
    XEvent*		,
    int (*) (

	       Display*			,
               XEvent*			,
               XPointer			

             )		,
    XPointer		

);

extern int XImageByteOrder(

    Display*		

);

extern XInstallColormap(

    Display*		,
    Colormap		

);

extern KeyCode XKeysymToKeycode(

    Display*		,
    KeySym		

);

extern XKillClient(

    Display*		,
    XID			

);

extern unsigned long XLastKnownRequestProcessed(

    Display*		

);

extern int XLookupColor(

    Display*		,
    Colormap		,
    const char*	,
    XColor*		,
    XColor*		

);

extern XLowerWindow(

    Display*		,
    Window		

);

extern XMapRaised(

    Display*		,
    Window		

);

extern XMapSubwindows(

    Display*		,
    Window		

);

extern XMapWindow(

    Display*		,
    Window		

);

extern XMaskEvent(

    Display*		,
    long		,
    XEvent*		

);

extern int XMaxCmapsOfScreen(

    Screen*		

);

extern int XMinCmapsOfScreen(

    Screen*		

);

extern XMoveResizeWindow(

    Display*		,
    Window		,
    int			,
    int			,
    unsigned int	,
    unsigned int	

);

extern XMoveWindow(

    Display*		,
    Window		,
    int			,
    int			

);

extern XNextEvent(

    Display*		,
    XEvent*		

);

extern XNoOp(

    Display*		

);

extern int XParseColor(

    Display*		,
    Colormap		,
    const char*	,
    XColor*		

);

extern int XParseGeometry(

    const char*	,
    int*		,
    int*		,
    unsigned int*	,
    unsigned int*	

);

extern XPeekEvent(

    Display*		,
    XEvent*		

);

extern XPeekIfEvent(

    Display*		,
    XEvent*		,
    int (*) (

	       Display*		,
               XEvent*		,
               XPointer		

             )		,
    XPointer		

);

extern int XPending(

    Display*		

);

extern int XPlanesOfScreen(

    Screen*		
    

);

extern int XProtocolRevision(

    Display*		

);

extern int XProtocolVersion(

    Display*		

);


extern XPutBackEvent(

    Display*		,
    XEvent*		

);

extern XPutImage(

    Display*		,
    Drawable		,
    GC			,
    XImage*		,
    int			,
    int			,
    int			,
    int			,
    unsigned int	,
    unsigned int		  

);

extern int XQLength(

    Display*		

);

extern int XQueryBestCursor(

    Display*		,
    Drawable		,
    unsigned int        ,
    unsigned int	,
    unsigned int*	,
    unsigned int*	

);

extern int XQueryBestSize(

    Display*		,
    int			,
    Drawable		,
    unsigned int	,
    unsigned int	,
    unsigned int*	,
    unsigned int*	

);

extern int XQueryBestStipple(

    Display*		,
    Drawable		,
    unsigned int	,
    unsigned int	,
    unsigned int*	,
    unsigned int*	

);

extern int XQueryBestTile(

    Display*		,
    Drawable		,
    unsigned int	,
    unsigned int	,
    unsigned int*	,
    unsigned int*	

);

extern XQueryColor(

    Display*		,
    Colormap		,
    XColor*		

);

extern XQueryColors(

    Display*		,
    Colormap		,
    XColor*		,
    int			

);

extern int XQueryExtension(

    Display*		,
    const char*	,
    int*		,
    int*		,
    int*		

);

extern XQueryKeymap(

    Display*		,
    char [32]		

);

extern int XQueryPointer(

    Display*		,
    Window		,
    Window*		,
    Window*		,
    int*		,
    int*		,
    int*		,
    int*		,
    unsigned int*       

);

extern XQueryTextExtents(

    Display*		,
    XID			,
    const char*	,
    int			,
    int*		,
    int*		,
    int*		,
    XCharStruct*	    

);

extern XQueryTextExtents16(

    Display*		,
    XID			,
    const XChar2b*	,
    int			,
    int*		,
    int*		,
    int*		,
    XCharStruct*	

);

extern int XQueryTree(

    Display*		,
    Window		,
    Window*		,
    Window*		,
    Window**		,
    unsigned int*	

);

extern XRaiseWindow(

    Display*		,
    Window		

);

extern int XReadBitmapFile(

    Display*		,
    Drawable 		,
    const char*	,
    unsigned int*	,
    unsigned int*	,
    Pixmap*		,
    int*		,
    int*		

);

extern XRebindKeysym(

    Display*		,
    KeySym		,
    KeySym*		,
    int			,
    const unsigned char*	,
    int			

);

extern XRecolorCursor(

    Display*		,
    Cursor		,
    XColor*		,
    XColor*		

);

extern XRefreshKeyboardMapping(

    XMappingEvent*	    

);

extern XRemoveFromSaveSet(

    Display*		,
    Window		

);

extern XRemoveHost(

    Display*		,
    XHostAddress*	

);

extern XRemoveHosts(

    Display*		,
    XHostAddress*	,
    int			

);

extern XReparentWindow(

    Display*		,
    Window		,
    Window		,
    int			,
    int			

);

extern XResetScreenSaver(

    Display*		

);

extern XResizeWindow(

    Display*		,
    Window		,
    unsigned int	,
    unsigned int	

);

extern XRestackWindows(

    Display*		,
    Window*		,
    int			

);

extern XRotateBuffers(

    Display*		,
    int			

);

extern XRotateWindowProperties(

    Display*		,
    Window		,
    Atom*		,
    int			,
    int			

);

extern int XScreenCount(

    Display*		

);

extern XSelectInput(

    Display*		,
    Window		,
    long		

);

extern int XSendEvent(

    Display*		,
    Window		,
    int		,
    long		,
    XEvent*		

);

extern XSetAccessControl(

    Display*		,
    int			

);

extern XSetArcMode(

    Display*		,
    GC			,
    int			

);

extern XSetBackground(

    Display*		,
    GC			,
    unsigned long	

);

extern XSetClipMask(

    Display*		,
    GC			,
    Pixmap		

);

extern XSetClipOrigin(

    Display*		,
    GC			,
    int			,
    int			

);

extern XSetClipRectangles(

    Display*		,
    GC			,
    int			,
    int			,
    XRectangle*		,
    int			,
    int			

);

extern XSetCloseDownMode(

    Display*		,
    int			

);

extern XSetCommand(

    Display*		,
    Window		,
    char**		,
    int			

);

extern XSetDashes(

    Display*		,
    GC			,
    int			,
    const char*	,
    int			

);

extern XSetFillRule(

    Display*		,
    GC			,
    int			

);

extern XSetFillStyle(

    Display*		,
    GC			,
    int			

);

extern XSetFont(

    Display*		,
    GC			,
    Font		

);

extern XSetFontPath(

    Display*		,
    char**		,
    int				     

);

extern XSetForeground(

    Display*		,
    GC			,
    unsigned long	

);

extern XSetFunction(

    Display*		,
    GC			,
    int			

);

extern XSetGraphicsExposures(

    Display*		,
    GC			,
    int		

);

extern XSetIconName(

    Display*		,
    Window		,
    const char*	

);

extern XSetInputFocus(

    Display*		,
    Window		,
    int			,
    Time		

);

extern XSetLineAttributes(

    Display*		,
    GC			,
    unsigned int	,
    int			,
    int			,
    int			

);

extern int XSetModifierMapping(

    Display*		,
    XModifierKeymap*	

);

extern XSetPlaneMask(

    Display*		,
    GC			,
    unsigned long	

);

extern int XSetPointerMapping(

    Display*		,
    const unsigned char*	,
    int			

);

extern XSetScreenSaver(

    Display*		,
    int			,
    int			,
    int			,
    int			

);

extern XSetSelectionOwner(

    Display*		,
    Atom	        ,
    Window		,
    Time		

);

extern XSetState(

    Display*		,
    GC			,
    unsigned long 	,
    unsigned long	,
    int			,
    unsigned long	

);

extern XSetStipple(

    Display*		,
    GC			,
    Pixmap		

);

extern XSetSubwindowMode(

    Display*		,
    GC			,
    int			

);

extern XSetTSOrigin(

    Display*		,
    GC			,
    int			,
    int			

);

extern XSetTile(

    Display*		,
    GC			,
    Pixmap		

);

extern XSetWindowBackground(

    Display*		,
    Window		,
    unsigned long	

);

extern XSetWindowBackgroundPixmap(

    Display*		,
    Window		,
    Pixmap		

);

extern XSetWindowBorder(

    Display*		,
    Window		,
    unsigned long	

);

extern XSetWindowBorderPixmap(

    Display*		,
    Window		,
    Pixmap		

);

extern XSetWindowBorderWidth(

    Display*		,
    Window		,
    unsigned int	

);

extern XSetWindowColormap(

    Display*		,
    Window		,
    Colormap		

);

extern XStoreBuffer(

    Display*		,
    const char*	,
    int			,
    int			

);

extern XStoreBytes(

    Display*		,
    const char*	,
    int			

);

extern XStoreColor(

    Display*		,
    Colormap		,
    XColor*		

);

extern XStoreColors(

    Display*		,
    Colormap		,
    XColor*		,
    int			

);

extern XStoreName(

    Display*		,
    Window		,
    const char*	

);

extern XStoreNamedColor(

    Display*		,
    Colormap		,
    const char*	,
    unsigned long	,
    int			

);

extern XSync(

    Display*		,
    int		

);

extern XTextExtents(

    XFontStruct*	,
    const char*	,
    int			,
    int*		,
    int*		,
    int*		,
    XCharStruct*	

);

extern XTextExtents16(

    XFontStruct*	,
    const XChar2b*	,
    int			,
    int*		,
    int*		,
    int*		,
    XCharStruct*	

);

extern int XTextWidth(

    XFontStruct*	,
    const char*	,
    int			

);

extern int XTextWidth16(

    XFontStruct*	,
    const XChar2b*	,
    int			

);

extern int XTranslateCoordinates(

    Display*		,
    Window		,
    Window		,
    int			,
    int			,
    int*		,
    int*		,
    Window*		

);

extern XUndefineCursor(

    Display*		,
    Window		

);

extern XUngrabButton(

    Display*		,
    unsigned int	,
    unsigned int	,
    Window		

);

extern XUngrabKey(

    Display*		,
    int			,
    unsigned int	,
    Window		

);

extern XUngrabKeyboard(

    Display*		,
    Time		

);

extern XUngrabPointer(

    Display*		,
    Time		

);

extern XUngrabServer(

    Display*		

);

extern XUninstallColormap(

    Display*		,
    Colormap		

);

extern XUnloadFont(

    Display*		,
    Font		

);

extern XUnmapSubwindows(

    Display*		,
    Window		

);

extern XUnmapWindow(

    Display*		,
    Window		

);

extern int XVendorRelease(

    Display*		

);

extern XWarpPointer(

    Display*		,
    Window		,
    Window		,
    int			,
    int			,
    unsigned int	,
    unsigned int	,
    int			,
    int				     

);

extern int XWidthMMOfScreen(

    Screen*		

);

extern int XWidthOfScreen(

    Screen*		

);

extern XWindowEvent(

    Display*		,
    Window		,
    long		,
    XEvent*		

);

extern int XWriteBitmapFile(

    Display*		,
    const char*	,
    Pixmap		,
    unsigned int	,
    unsigned int	,
    int			,
    int					     

);

extern int XSupportsLocale(

    void

);

extern char *XSetLocaleModifiers(

    const char*	

);

extern XFontSet XCreateFontSet(

    Display*		,
    const char*	,
    char***		,
    int*		,
    char**		

);

extern void XFreeFontSet(

    Display*		,
    XFontSet		

);

extern int XFontsOfFontSet(

    XFontSet		,
    XFontStruct***	,
    char***		

);

extern char *XBaseFontNameListOfFontSet(

    XFontSet		

);

extern char *XLocaleOfFontSet(

    XFontSet		

);

extern int XContextDependentDrawing(

    XFontSet		

);

extern XFontSetExtents *XExtentsOfFontSet(

    XFontSet		

);

extern int XmbTextEscapement(

    XFontSet		,
    const char*	,
    int			

);

extern int XwcTextEscapement(

    XFontSet		,
    wchar_t*		,
    int			

);

extern int XmbTextExtents(

    XFontSet		,
    const char*	,
    int			,
    XRectangle*		,
    XRectangle*		

);

extern int XwcTextExtents(

    XFontSet		,
    wchar_t*		,
    int			,
    XRectangle*		,
    XRectangle*		

);

extern int XmbTextPerCharExtents(

    XFontSet		,
    const char*	,
    int			,
    XRectangle*		,
    XRectangle*		,
    int			,
    int*		,
    XRectangle*		,
    XRectangle*		

);

extern int XwcTextPerCharExtents(

    XFontSet		,
    wchar_t*		,
    int			,
    XRectangle*		,
    XRectangle*		,
    int			,
    int*		,
    XRectangle*		,
    XRectangle*		

);

extern void XmbDrawText(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    XmbTextItem*	,
    int			

);

extern void XwcDrawText(

    Display*		,
    Drawable		,
    GC			,
    int			,
    int			,
    XwcTextItem*	,
    int			

);

extern void XmbDrawString(

    Display*		,
    Drawable		,
    XFontSet		,
    GC			,
    int			,
    int			,
    const char*	,
    int			

);

extern void XwcDrawString(

    Display*		,
    Drawable		,
    XFontSet		,
    GC			,
    int			,
    int			,
    wchar_t*		,
    int			

);

extern void XmbDrawImageString(

    Display*		,
    Drawable		,
    XFontSet		,
    GC			,
    int			,
    int			,
    const char*	,
    int			

);

extern void XwcDrawImageString(

    Display*		,
    Drawable		,
    XFontSet		,
    GC			,
    int			,
    int			,
    wchar_t*		,
    int			

);

extern XIM XOpenIM(

    Display*			,
    struct _XrmHashBucketRec*	,
    char*			,
    char*			

);

extern int XCloseIM(

    XIM 

);

extern char *XGetIMValues(

    XIM , ...

);

extern Display *XDisplayOfIM(

    XIM 

);

extern char *XLocaleOfIM(

    XIM 

);

extern XIC XCreateIC(

    XIM , ...

);

extern void XDestroyIC(

    XIC 

);

extern void XSetICFocus(

    XIC 

);

extern void XUnsetICFocus(

    XIC 

);

extern wchar_t *XwcResetIC(

    XIC 

);

extern char *XmbResetIC(

    XIC 

);

extern char *XSetICValues(

    XIC , ...

);

extern char *XGetICValues(

    XIC , ...

);

extern XIM XIMOfIC(

    XIC 

);

extern int XFilterEvent(

    XEvent*	,
    Window	

);

extern int XmbLookupString(

    XIC			,
    XKeyPressedEvent*	,
    char*		,
    int			,
    KeySym*		,
    int*		

);

extern int XwcLookupString(

    XIC			,
    XKeyPressedEvent*	,
    wchar_t*		,
    int			,
    KeySym*		,
    int*		

);

extern XVaNestedList XVaCreateNestedList(

    int , ...

);

}


# 42 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 2

# 45 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 






typedef struct Tk_ErrorHandler_ *Tk_ErrorHandler;
typedef struct Tk_TimerToken_ *Tk_TimerToken;
typedef struct Tk_Window_ *Tk_Window;
typedef struct Tk_3DBorder_ *Tk_3DBorder;
typedef struct Tk_BindingTable_ *Tk_BindingTable;





typedef char *Tk_Uid;





typedef struct {
    char *key;		

    int type;		
    char *src;		

    char *dst;		

    char *help;		
} Tk_ArgvInfo;



































typedef int (Tk_OptionParseProc) 
# 114 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 	Tcl_Interp *interp, Tk_Window tkwin, char *value, char *widgRec, 	int offset);
typedef char *(Tk_OptionPrintProc) 
# 117 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 	Tk_Window tkwin, char *widgRec, int offset, 	Tcl_FreeProc **freeProcPtr);

typedef struct Tk_CustomOption {
    Tk_OptionParseProc *parseProc;	


    Tk_OptionPrintProc *printProc;	


    ClientData clientData;		


} Tk_CustomOption;








typedef struct Tk_ConfigSpec {
    int type;			


    char *argvName;		

    char *dbName;		
    char *dbClass;		
    char *defValue;		

    int offset;			


    int specFlags;		


    Tk_CustomOption *customPtr;	



} Tk_ConfigSpec;






































# 199 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 












































































typedef enum {
    TK_ANCHOR_N, TK_ANCHOR_NE, TK_ANCHOR_E, TK_ANCHOR_SE,
    TK_ANCHOR_S, TK_ANCHOR_SW, TK_ANCHOR_W, TK_ANCHOR_NW,
    TK_ANCHOR_CENTER
} Tk_Anchor;





typedef enum {
    TK_JUSTIFY_LEFT, TK_JUSTIFY_RIGHT,
    TK_JUSTIFY_CENTER, TK_JUSTIFY_FILL
} Tk_Justify;






typedef enum {TK_MONO, TK_COLOR} Tk_ColorModel;

















































typedef struct Tk_FakeWin {
    Display *display;
    char *dummy1;
    int screenNum;
    Visual *visual;
    int depth;
    Window window;
    char *dummy2;
    char *dummy3;
    Tk_Window parentPtr;
    char *dummy4;
    char *dummy5;
    char *pathName;
    Tk_Uid nameUid;
    Tk_Uid classUid;
    XWindowChanges changes;
    unsigned int dummy6;
    XSetWindowAttributes atts;
    unsigned long dummy7;
    unsigned int flags;
    char *dummy8;
    char *dummy9;
    ClientData dummy10;
    int dummy12;
    char *dummy13;
    char *dummy14;
    ClientData dummy15;
    char *dummy16;
    ClientData dummy17;
    int reqWidth, reqHeight;
    int internalBorderWidth;
    char *dummyX;
} Tk_FakeWin;





































typedef int (Tk_ErrorProc) 
# 416 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 	XErrorEvent *errEventPtr);
typedef void (Tk_EventProc) 
# 418 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 	XEvent *eventPtr);
typedef void (Tk_FileProc) (ClientData clientData, int mask);
typedef void (Tk_FocusProc) (ClientData clientData, int gotFocus);
typedef void (Tk_FreeProc) (ClientData clientData);
typedef int (Tk_GenericProc) 
# 423 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 	XEvent *eventPtr);
typedef void (Tk_GeometryProc) 
# 425 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 	Tk_Window tkwin);
typedef int (Tk_GetSelProc) 
# 427 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 	Tcl_Interp *interp, char *portion);
typedef void (Tk_IdleProc) (ClientData clientData);
typedef void (Tk_LostSelProc) (ClientData clientData);
typedef int (Tk_RestrictProc) 
# 431 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Display *display, XEvent *eventPtr, 	char *arg);
typedef int (Tk_SelectionProc) 
# 433 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 	int offset, char *buffer, int maxBytes);
typedef void (Tk_TimerProc) (ClientData clientData);









extern "C" XColor *		Tk_3DBorderColor (Tk_3DBorder border);
extern "C" void		Tk_AddOption 
# 446 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, char *name, 			    char *value, int priority);
extern "C" void		Tk_BackgroundError (Tcl_Interp *interp);
extern "C" void		Tk_BindEvent 
# 450 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_BindingTable bindingTable, 			    XEvent *eventPtr, Tk_Window tkwin, int numObjects, 			    ClientData *objectPtr);
extern "C" void		Tk_CancelIdleCall 
# 452 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_IdleProc *idleProc, 				ClientData clientData);
extern "C" void		Tk_ChangeWindowAttributes 
# 455 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    unsigned long valueMask, 			    XSetWindowAttributes *attsPtr);
extern "C" void		Tk_ClearSelection (Tk_Window tkwin);
extern "C" void		Tk_ConfigureFree 
# 458 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_ConfigSpec *specs, 			    char *widgRec, Display *display, int needFlags);
extern "C" int		Tk_ConfigureInfo 
# 461 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_Window tkwin, Tk_ConfigSpec *specs, 			    char *widgRec, char *argvName, int flags);
extern "C" int		Tk_ConfigureWidget 
# 465 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_Window tkwin, Tk_ConfigSpec *specs, 			    int argc, char **argv, char *widgRec, 			    int flags);
extern "C" void		Tk_ConfigureWindow 
# 467 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    unsigned int valueMask, XWindowChanges *valuePtr);
extern "C" Tk_Window	Tk_CoordsToWindow 
# 469 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(int rootX, int rootY, 			    Tk_Window tkwin);
extern "C" unsigned long	Tk_CreateBinding 
# 472 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_BindingTable bindingTable, ClientData object, 			    char *eventString, char *command, int append);
extern "C" Tk_BindingTable	Tk_CreateBindingTable (Tcl_Interp *interp);
extern "C" Tk_ErrorHandler	Tk_CreateErrorHandler 
# 476 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Display *display, 			    int error, int request, int minorCode, 			    Tk_ErrorProc *errorProc, ClientData clientData);
extern "C" void		Tk_CreateEventHandler 
# 479 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window token, 			    unsigned long mask, Tk_EventProc *proc, 			    ClientData clientData);
extern "C" void		Tk_CreateFileHandler 
# 481 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(int fd, int mask, 			    Tk_FileProc *proc, ClientData clientData);
extern "C" void		Tk_CreateFocusHandler 
# 483 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    Tk_FocusProc *proc, ClientData clientData);
extern "C" void		Tk_CreateGenericHandler 
# 485 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
( 			    Tk_GenericProc *proc, ClientData clientData);
extern "C" Tk_Window	Tk_CreateMainWindow 
# 487 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    char *screenName, char *baseName);
extern "C" void		Tk_CreateSelHandler 
# 490 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    Atom target, Tk_SelectionProc *proc, 			    ClientData clientData, Atom format);
extern "C" Tk_TimerToken	Tk_CreateTimerHandler 
# 492 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(int milliseconds, 			    Tk_TimerProc *proc, ClientData clientData);
extern "C" Tk_Window	Tk_CreateWindow 
# 494 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_Window parent, char *name, char *screenName);
extern "C" Tk_Window	Tk_CreateWindowFromPath 
# 497 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
( 			    Tcl_Interp *interp, Tk_Window tkwin, 			    char *pathName, char *screenName);
extern "C" int		Tk_DefineBitmap 
# 500 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_Uid name, char *source, unsigned int width, 			    unsigned int height);
extern "C" void		Tk_DefineCursor 
# 502 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window window, 			    Cursor cursor);
extern "C" int              Tk_DefinePixmap 
# 507 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp,                             Tk_Uid name, Tk_Window tkwin, Pixmap pixmap,                             Pixmap clipMask, char *source,                             unsigned int width, unsigned int height,                             unsigned int depth, char *format);
extern "C" void		Tk_DeleteAllBindings 
# 509 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
( 			    Tk_BindingTable bindingTable, ClientData object);
extern "C" int		Tk_DeleteBinding 
# 512 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_BindingTable bindingTable, ClientData object, 			    char *eventString);
extern "C" void		Tk_DeleteBindingTable 
# 514 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
( 			    Tk_BindingTable bindingTable);
extern "C" void		Tk_DeleteErrorHandler 
# 516 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
( 			    Tk_ErrorHandler handler);
extern "C" void		Tk_DeleteEventHandler 
# 519 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window token, 			    unsigned long mask, Tk_EventProc *proc, 			    ClientData clientData);
extern "C" void		Tk_DeleteFileHandler (int fd);
extern "C" void		Tk_DeleteGenericHandler 
# 522 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
( 			    Tk_GenericProc *proc, ClientData clientData);
extern "C" void		Tk_DeleteSelHandler 
# 524 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    Atom target);
extern "C" void		Tk_DeleteTimerHandler 
# 526 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
( 			    Tk_TimerToken token);
extern "C" int              Tk_DepthOfPixmap 
# 528 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Display *display,                             Pixmap pixmap);
extern "C" void		Tk_DestroyWindow (Tk_Window tkwin);
extern "C" char *		Tk_DisplayName (Tk_Window tkwin);
extern "C" int		Tk_DoOneEvent (int flags);
extern "C" void		Tk_DoWhenIdle 
# 533 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_IdleProc *proc, 			    ClientData clientData);
extern "C" void		Tk_Draw3DPolygon 
# 537 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Display *display, 			    Drawable drawable, Tk_3DBorder border, 			    XPoint *pointPtr, int numPoints, int borderWidth, 			    int leftRelief);
extern "C" void		Tk_Draw3DRectangle 
# 541 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Display *display, 			    Drawable drawable, Tk_3DBorder border, int x, 			    int y, int width, int height, int borderWidth, 			    int relief);
extern "C" void		Tk_EventuallyFree 
# 543 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tk_FreeProc *freeProc);
extern "C" void		Tk_Fill3DPolygon 
# 547 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Display *display, 			    Drawable drawable, Tk_3DBorder border, 			    XPoint *pointPtr, int numPoints, int borderWidth, 			    int leftRelief);
extern "C" void		Tk_Fill3DRectangle 
# 551 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Display *display, 			    Drawable drawable, Tk_3DBorder border, int x, 			    int y, int width, int height, int borderWidth, 			    int relief);
extern "C" void		Tk_Free3DBorder (Tk_3DBorder border);
extern "C" void		Tk_FreeBitmap 
# 554 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Display *display, 			    Pixmap bitmap);
extern "C" void		Tk_FreeColor (XColor *colorPtr);
extern "C" void		Tk_FreeCursor 
# 557 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Display *display, 			    Cursor cursor);
extern "C" void		Tk_FreeFontStruct 
# 559 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
( 			    XFontStruct *fontStructPtr);
extern "C" void		Tk_FreeGC (Display *display, GC gc);
extern "C" void		Tk_FreeOptions 
# 562 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_ConfigSpec *specs, 			    char *widgRec, Display *display, int needFlags);
extern "C" void             Tk_FreePixmap 
# 564 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Display *display,                             Pixmap bitmap);
extern "C" void		Tk_GeometryRequest 
# 566 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    int reqWidth,  int reqHeight);
extern "C" Tk_3DBorder	Tk_Get3DBorder 
# 569 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_Window tkwin, Colormap colormap, 			    Tk_Uid colorName);
extern "C" void		Tk_GetAllBindings 
# 571 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_BindingTable bindingTable, ClientData object);
extern "C" int		Tk_GetAnchor 
# 573 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    char *string, Tk_Anchor *anchorPtr);
extern "C" char *		Tk_GetAtomName 
# 575 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    Atom atom);
extern "C" char *		Tk_GetBinding 
# 578 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_BindingTable bindingTable, ClientData object, 			    char *eventString);
extern "C" Pixmap		Tk_GetBitmap 
# 580 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_Window tkwin, Tk_Uid string);
extern "C" Pixmap		Tk_GetBitmapFromData 
# 583 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_Window tkwin, char *source, 			    unsigned int width, unsigned int height);
extern "C" int		Tk_GetCapStyle 
# 585 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    char *string, int *capPtr);
extern "C" XColor *		Tk_GetColor 
# 587 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_Window tkwin, Colormap colormap, Tk_Uid name);
extern "C" XColor *		Tk_GetColorByValue 
# 590 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_Window tkwin, Colormap colormap, 			    XColor *colorPtr);
extern "C" Tk_ColorModel	Tk_GetColorModel (Tk_Window tkwin);
extern "C" Cursor		Tk_GetCursor 
# 593 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_Window tkwin, Tk_Uid string);
extern "C" Cursor		Tk_GetCursorFromData 
# 597 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_Window tkwin, char *source, char *mask, 			    unsigned int width, unsigned int height, 			    int xHot, int yHot, Tk_Uid fg, Tk_Uid bg);
extern "C" XFontStruct *	Tk_GetFontStruct 
# 599 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_Window tkwin, Tk_Uid name);
extern "C" GC		Tk_GetGC 
# 601 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    unsigned long valueMask, XGCValues *valuePtr);
extern "C" int		Tk_GetJoinStyle 
# 603 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    char *string, int *joinPtr);
extern "C" int		Tk_GetJustify 
# 605 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    char *string, Tk_Justify *justifyPtr);
extern "C" Tk_Uid		Tk_GetOption 
# 607 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, char *name, 			    char *className);
extern "C" int		Tk_GetPixels 
# 609 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_Window tkwin, char *string, int *intPtr);
extern "C" Pixmap           Tk_GetPixmap 
# 611 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp,                             Tk_Window tkwin, Tk_Uid string);
extern "C" Pixmap           Tk_GetPixmapClipMask 
# 613 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Display *display,                             Pixmap pixmap);
extern "C" Pixmap           Tk_GetPixmapFromData 
# 617 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp,                             Tk_Window tkwin, Tk_Uid name, char *source,                             unsigned int width, unsigned int height,                             unsigned int depth, char *format);
extern "C" int		Tk_GetRelief 
# 619 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    char *name, int *reliefPtr);
extern "C" void		Tk_GetRootCoords 
# 621 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    int *xPtr, int *yPtr);
extern "C" int		Tk_GetScreenMM 
# 623 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_Window tkwin, char *string, double *doublePtr);
extern "C" int		Tk_GetSelection 
# 626 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_Window tkwin, Atom target, Tk_GetSelProc *proc, 			    ClientData clientData);
extern "C" Tk_Uid		Tk_GetUid (char *string);
extern "C" void		Tk_GetVRootGeometry 
# 630 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    int *xPtr, int *yPtr, unsigned int *widthPtr, 			    unsigned int *heightPtr);
extern "C" int		Tk_Grab 
# 632 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_Window tkwin, int grabGlobal);
extern "C" void		Tk_HandleEvent (XEvent *eventPtr);
extern "C" int		Tk_Init (Tcl_Interp *interp);
extern "C" Atom		Tk_InternAtom 
# 636 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    char *name);
extern "C" void		Tk_MainLoop (void);
extern "C" Tk_Window	Tk_MainWindow (Tcl_Interp *interp);
extern "C" void		Tk_MakeWindowExist (Tk_Window tkwin);
extern "C" void		Tk_ManageGeometry 
# 641 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    Tk_GeometryProc *proc, ClientData clientData);
extern "C" void		Tk_MapWindow (Tk_Window tkwin);
extern "C" void		Tk_MoveResizeWindow 
# 645 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    int x, int y, unsigned int width, 			    unsigned int height);
extern "C" void		Tk_MoveWindow 
# 647 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, int x, 			    int y);
extern "C" void		Tk_MoveToplevelWindow 
# 649 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    int x, int y);
extern "C" char *		Tk_NameOf3DBorder (Tk_3DBorder border);
extern "C" char *		Tk_NameOfAnchor (Tk_Anchor anchor);
extern "C" char *		Tk_NameOfBitmap 
# 653 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Display *display, 			    Pixmap bitmap);
extern "C" char *		Tk_NameOfCapStyle (int cap);
extern "C" char *		Tk_NameOfColor (XColor *colorPtr);
extern "C" char *		Tk_NameOfCursor 
# 657 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Display *display, 			    Cursor cursor);
extern "C" char *		Tk_NameOfFontStruct 
# 659 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
( 			    XFontStruct *fontStructPtr);
extern "C" char *		Tk_NameOfJoinStyle (int join);
extern "C" char *		Tk_NameOfJustify (Tk_Justify justify);
extern "C" char *           Tk_NameOfPixmap 
# 663 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Display *display,                             Pixmap bitmap);
extern "C" char *		Tk_NameOfRelief (int relief);
extern "C" Tk_Window	Tk_NameToWindow 
# 666 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    char *pathName, Tk_Window tkwin);
extern "C" void		Tk_OwnSelection 
# 668 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    Tk_LostSelProc *proc, ClientData clientData);
extern "C" int		Tk_ParseArgv 
# 671 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    Tk_Window tkwin, int *argcPtr, char **argv, 			    Tk_ArgvInfo *argTable, int flags);
extern "C" Pixmap           Tk_PixmapOfName 
# 673 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Uid name,                             Tk_Window tkwin);
extern "C" void		Tk_Preserve (ClientData clientData);
extern "C" int		Tk_RegisterInterp 
# 676 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp, 			    char *name, Tk_Window tkwin);
extern "C" void		Tk_Release (ClientData clientData);
extern "C" void		Tk_ResizeWindow 
# 679 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    unsigned int width, unsigned int height);
extern "C" int		Tk_RestackWindow 
# 681 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    int aboveBelow, Tk_Window other);
extern "C" Tk_RestrictProc *Tk_RestrictEvents 
# 683 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_RestrictProc *proc, 			    char *arg, char **prevArgPtr);
extern "C" int              Tk_SavePixmap 
# 688 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp,                             Tk_Window tkwin, char *fileName,                             Pixmap savePixmap, Pixmap clipMask,                             unsigned int width, unsigned int height,                             char *format);
extern "C" void		Tk_SetBackgroundFromBorder 
# 690 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
( 			    Tk_Window tkwin, Tk_3DBorder border);
extern "C" void		Tk_SetClass 
# 692 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    char *className);
extern "C" void		Tk_SetColorModel 
# 694 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    Tk_ColorModel model);
extern "C" void		Tk_SetGrid 
# 697 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    int reqWidth, int reqHeight, int gridWidth, 			    int gridHeight);
extern "C" void		Tk_SetInternalBorder 
# 699 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    int width);
extern "C" void		Tk_SetWindowBackground 
# 701 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    unsigned long pixel);
extern "C" void		Tk_SetWindowBackgroundPixmap 
# 703 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
( 			    Tk_Window tkwin, Pixmap pixmap);
extern "C" void		Tk_SetWindowBorder 
# 705 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    unsigned long pixel);
extern "C" void		Tk_SetWindowBorderWidth 
# 707 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    int width);
extern "C" void		Tk_SetWindowBorderPixmap 
# 709 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    Pixmap pixmap);
extern "C" void		Tk_SetWindowColormap 
# 711 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    Colormap colormap);
extern "C" int		Tk_SetWindowVisual 
# 714 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tk_Window tkwin, 			    Visual *visual, unsigned int depth, 			    Colormap colormap);
extern "C" void		Tk_SizeOfBitmap 
# 717 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Display *display, 			    Pixmap bitmap, unsigned int *widthPtr, 			    unsigned int *heightPtr);
extern "C" void             Tk_SizeOfPixmap 
# 720 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Display *display,                             Pixmap bitmap, unsigned int *widthPtr,                             unsigned int *heightPtr);
extern "C" void		Tk_Sleep (int ms);
extern "C" void		Tk_UndefineCursor (Tk_Window window);
extern "C" int              Tk_UndefinePixmap 
# 724 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(Tcl_Interp *interp,                             Tk_Uid name, Tk_Window tkwin);
extern "C" void		Tk_Ungrab (Tk_Window tkwin);
extern "C" void		Tk_UnmapWindow (Tk_Window tkwin);


extern "C" int		tk_NumMainWindows;





extern "C" int		Tk_AfterCmd 
# 736 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_AddinputCmd 
# 738 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData,  			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_ApplicationCmd 
# 740 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_BindCmd 
# 742 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_ButtonCmd 
# 744 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_CanvasCmd 
# 746 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_DestroyCmd 
# 748 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_EntryCmd 
# 750 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_ExitCmd 
# 752 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_FrameCmd 
# 754 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_FocusCmd 
# 756 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_GrabCmd 
# 758 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_ListboxCmd 
# 760 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_LowerCmd 
# 762 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_MenuCmd 
# 764 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_MenubuttonCmd 
# 766 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_MessageCmd 
# 768 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_OptionCmd 
# 770 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_PackCmd 
# 772 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int              Tk_PinfoCmd 
# 774 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData,                             Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_PlaceCmd 
# 776 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_RaiseCmd 
# 778 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_RemoveinputCmd 
# 780 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData,   			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_ScaleCmd 
# 782 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_ScrollbarCmd 
# 784 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_SelectionCmd 
# 786 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_SendCmd 
# 788 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_TextCmd 
# 790 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_TkCmd 
# 792 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_TkwaitCmd 
# 794 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_UpdateCmd 
# 796 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_WinfoCmd 
# 798 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern "C" int		Tk_WmCmd 
# 800 "/usr/prac/se/hush/experimental/include/tcl-tk/tk.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);


# 6 "/usr/prac/se/hush/experimental/include/hush/tk.h" 2
//#include </usr/prac/se/hush/experimental/tcl-tk/include/tkConfig.h>
# 1 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 1
































# 35 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 


# 1 "/usr/include/X11/Xutil.h" 1
















































typedef struct {
    	long flags;	
	int x, y;		
	int width, height;	
	int min_width, min_height;
	int max_width, max_height;
    	int width_inc, height_inc;
	struct {
		int x;	
		int y;	
	} min_aspect, max_aspect;
	int base_width, base_height;		
	int win_gravity;			
} XSizeHints;
























typedef struct {
	long flags;	
	int input;	

	int initial_state;	
	Pixmap icon_pixmap;	
	Window icon_window; 	
	int icon_x, icon_y; 	
	Pixmap icon_mask;	
	XID window_group;	
	
} XWMHints;
























			






typedef struct {
    unsigned char *value;		
    Atom encoding;			
    int format;				
    unsigned long nitems;		
} XTextProperty;





typedef enum {
    XStringStyle,		
    XCompoundTextStyle,		
    XTextStyle,			
    XStdICCTextStyle		
} XICCEncodingStyle;

typedef struct {
	int min_width, min_height;
	int max_width, max_height;
	int width_inc, height_inc;
} XIconSize;

typedef struct {
	char *res_name;
	char *res_class;
} XClassHint;



















typedef struct _XComposeStatus {
    XPointer compose_ptr;	
    int chars_matched;		
} XComposeStatus;


























typedef struct _XRegion *Region; 


 



 






typedef struct {
  Visual *visual;
  VisualID visualid;
  int screen;
  int depth;

  int c_class;					
# 230 "/usr/include/X11/Xutil.h" 

  unsigned long red_mask;
  unsigned long green_mask;
  unsigned long blue_mask;
  int colormap_size;
  int bits_per_rgb;
} XVisualInfo;

















typedef struct {
	Colormap colormap;
	unsigned long red_max;
	unsigned long red_mult;
	unsigned long green_max;
	unsigned long green_mult;
	unsigned long blue_max;
	unsigned long blue_mult;
	unsigned long base_pixel;
	VisualID visualid;		
	XID killid;			
} XStandardColormap;

























typedef int XContext;




extern "C" {



extern XClassHint *XAllocClassHint (

    void

);

extern XIconSize *XAllocIconSize (

    void

);

extern XSizeHints *XAllocSizeHints (

    void

);

extern XStandardColormap *XAllocStandardColormap (

    void

);

extern XWMHints *XAllocWMHints (

    void

);

extern XClipBox(

    Region		,
    XRectangle*		

);

extern Region XCreateRegion(

    void

);

extern char *XDefaultString(

    void

);

extern int XDeleteContext(

    Display*		,
    XID			,
    XContext		

);

extern XDestroyRegion(

    Region		

);

extern XEmptyRegion(

    Region		

);

extern XEqualRegion(

    Region		,
    Region		

);

extern int XFindContext(

    Display*		,
    XID			,
    XContext		,
    XPointer*		

);

extern int XGetClassHint(

    Display*		,
    Window		,
    XClassHint*		

);

extern int XGetIconSizes(

    Display*		,
    Window		,
    XIconSize**		,
    int*		

);

extern int XGetNormalHints(

    Display*		,
    Window		,
    XSizeHints*		

);

extern int XGetRGBColormaps(

    Display*		,
    Window		,
    XStandardColormap** ,
    int*		,
    Atom		

);

extern int XGetSizeHints(

    Display*		,
    Window		,
    XSizeHints*		,
    Atom		

);

extern int XGetStandardColormap(

    Display*		,
    Window		,
    XStandardColormap*	,
    Atom					    

);

extern int XGetTextProperty(

    Display*		,
    Window		,
    XTextProperty*	,
    Atom		

);

extern XVisualInfo *XGetVisualInfo(

    Display*		,
    long		,
    XVisualInfo*	,
    int*		

);

extern int XGetWMClientMachine(

    Display*		,
    Window		,
    XTextProperty*	

);

extern XWMHints *XGetWMHints(

    Display*		,
    Window				      

);

extern int XGetWMIconName(

    Display*		,
    Window		,
    XTextProperty*	

);

extern int XGetWMName(

    Display*		,
    Window		,
    XTextProperty*	

);

extern int XGetWMNormalHints(

    Display*		,
    Window		,
    XSizeHints*		,
    long*		 

);

extern int XGetWMSizeHints(

    Display*		,
    Window		,
    XSizeHints*		,
    long*		,
    Atom		

);

extern int XGetZoomHints(

    Display*		,
    Window		,
    XSizeHints*		

);

extern XIntersectRegion(

    Region		,
    Region		,
    Region		

);

extern int XLookupString(

    XKeyEvent*		,
    char*		,
    int			,
    KeySym*		,
    XComposeStatus*	

);

extern int XMatchVisualInfo(

    Display*		,
    int			,
    int			,
    int			,
    XVisualInfo*	

);

extern XOffsetRegion(

    Region		,
    int			,
    int			

);

extern int XPointInRegion(

    Region		,
    int			,
    int			

);

extern Region XPolygonRegion(

    XPoint*		,
    int			,
    int			

);

extern int XRectInRegion(

    Region		,
    int			,
    int			,
    unsigned int	,
    unsigned int	

);

extern int XSaveContext(

    Display*		,
    XID			,
    XContext		,
    const char*	

);

extern XSetClassHint(

    Display*		,
    Window		,
    XClassHint*		

);

extern XSetIconSizes(

    Display*		,
    Window		,
    XIconSize*		,
    int			    

);

extern XSetNormalHints(

    Display*		,
    Window		,
    XSizeHints*		

);

extern void XSetRGBColormaps(

    Display*		,
    Window		,
    XStandardColormap*	,
    int			,
    Atom		

);

extern XSetSizeHints(

    Display*		,
    Window		,
    XSizeHints*		,
    Atom		

);

extern XSetStandardProperties(

    Display*		,
    Window		,
    const char*	,
    const char*	,
    Pixmap		,
    char**		,
    int			,
    XSizeHints*		

);

extern void XSetTextProperty(

    Display*		,
    Window		,
    XTextProperty*	,
    Atom		

);

extern void XSetWMClientMachine(

    Display*		,
    Window		,
    XTextProperty*	

);

extern XSetWMHints(

    Display*		,
    Window		,
    XWMHints*		

);

extern void XSetWMIconName(

    Display*		,
    Window		,
    XTextProperty*	

);

extern void XSetWMName(

    Display*		,
    Window		,
    XTextProperty*	

);

extern void XSetWMNormalHints(

    Display*		,
    Window		,
    XSizeHints*		

);

extern void XSetWMProperties(

    Display*		,
    Window		,
    XTextProperty*	,
    XTextProperty*	,
    char**		,
    int			,
    XSizeHints*		,
    XWMHints*		,
    XClassHint*		

);

extern void XmbSetWMProperties(

    Display*		,
    Window		,
    const char*	,
    const char*	,
    char**		,
    int			,
    XSizeHints*		,
    XWMHints*		,
    XClassHint*		

);

extern void XSetWMSizeHints(

    Display*		,
    Window		,
    XSizeHints*		,
    Atom		

);

extern XSetRegion(

    Display*		,
    GC			,
    Region		

);

extern void XSetStandardColormap(

    Display*		,
    Window		,
    XStandardColormap*	,
    Atom		

);

extern XSetZoomHints(

    Display*		,
    Window		,
    XSizeHints*		

);

extern XShrinkRegion(

    Region		,
    int			,
    int			

);

extern int XStringListToTextProperty(

    char**		,
    int			,
    XTextProperty*	

);

extern XSubtractRegion(

    Region		,
    Region		,
    Region		

);

extern int XmbTextListToTextProperty(

    Display*		,
    char**		,
    int			,
    XICCEncodingStyle	,
    XTextProperty*	

);

extern int XwcTextListToTextProperty(

    Display*		,
    wchar_t**		,
    int			,
    XICCEncodingStyle	,
    XTextProperty*	

);

extern void XwcFreeStringList(

    wchar_t**		

);

extern int XTextPropertyToStringList(

    XTextProperty*	,
    char***		,
    int*		

);

extern int XmbTextPropertyToTextList(

    Display*		,
    XTextProperty*	,
    char***		,
    int*		

);

extern int XwcTextPropertyToTextList(

    Display*		,
    XTextProperty*	,
    wchar_t***		,
    int*		

);

extern XUnionRectWithRegion(

    XRectangle*		,
    Region		,
    Region		

);

extern XUnionRegion(

    Region		,
    Region		,
    Region		

);

extern int XWMGeometry(

    Display*		,
    int			,
    const char*	,
    const char*	,
    unsigned int	,
    XSizeHints*		,
    int*		,
    int*		,
    int*		,
    int*		,
    int*		

);

extern XXorRegion(

    Region		,
    Region		,
    Region		

);

}


# 38 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 2

# 41 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 

# 44 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 












typedef struct Tk_PostscriptInfo Tk_PostscriptInfo;
typedef struct TkGrabEvent TkGrabEvent;






typedef struct TkDisplay {
    Display *display;		
    struct TkDisplay *nextPtr;	
    char *name;			

    Time lastEventTime;		


    



    struct TkWindow *focusTopLevelPtr;
				




    int focussedOnEnter;	



    



    int bindInfoStale;		


    unsigned int modeModMask;	


    unsigned int ignoreModMask;	



    enum {IGNORE, CAPS, SHIFT} lockUsage;
				
    int numModKeyCodes;		

    KeyCode *modKeyCodes;	




    



    struct TkErrorHandler *errorPtr;
				


    int deleteCount;		



    int (*defaultHandler) 
# 122 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(Display *display, 	    XErrorEvent *eventPtr);
				



    



    Tk_Window commWindow;	



    Atom commProperty;		
    Atom registryProperty;	

    int serverSecure;		




    



    Tk_Window selectionOwner;	


    int selectionSerial;	



    Time selectionTime;		
    Atom multipleAtom;		

    Atom incrAtom;		
    Atom targetsAtom;		
    Atom timestampAtom;		
    Atom textAtom;		
    Atom compoundTextAtom;	
    Atom applicationAtom;	
    Atom windowNameAtom;	

    



    int atomInit;		

    Tcl_HashTable nameTable;	
    Tcl_HashTable atomTable;	

    



    Font cursorFont;		


    



    struct TkWindow *grabWinPtr;
				

    struct TkWindow *eventualGrabWinPtr;
				


    struct TkWindow *buttonWinPtr;
				


    struct TkWindow *serverWinPtr;
				






    TkGrabEvent *firstGrabEventPtr;
				




    TkGrabEvent *lastGrabEventPtr;
				

    int grabFlags;		


    



    Tk_ColorModel *colorModels;	



} TkDisplay;







typedef struct TkErrorHandler {
    TkDisplay *dispPtr;		
    unsigned long firstRequest;	

    unsigned long lastRequest;	




    int error;			


    int request;		


    int minorCode;		


    Tk_ErrorProc *errorProc;	


    ClientData clientData;	

    struct TkErrorHandler *nextPtr;
				


} TkErrorHandler;







typedef struct TkEventHandler {
    unsigned long mask;		

    Tk_EventProc *proc;		

    ClientData clientData;	
    struct TkEventHandler *nextPtr;
				


} TkEventHandler;







typedef struct TkSelHandler {
    Atom target;		


    Atom format;		


    Tk_SelectionProc *proc;	

    ClientData clientData;	
    int size;			


    struct TkSelHandler *nextPtr;
				


} TkSelHandler;








typedef struct TkMainInfo {
    struct TkWindow *winPtr;	
    Tcl_Interp *interp;		
    Tcl_HashTable nameTable;	


    Tk_BindingTable bindingTable;
				

    struct TkWindow *focusPtr;	





    struct TkWindow *focusDefaultPtr;
				


    struct ElArray *optionRootPtr;
				


    struct TkMainInfo *nextPtr;	

} TkMainInfo;












typedef struct TkWindow {

    



    Display *display;		
    TkDisplay *dispPtr;		

    int screenNum;		

    Visual *visual;		

    int depth;			
    Window window;		


    struct TkWindow *childList;	

    struct TkWindow *lastChildPtr;
				

    struct TkWindow *parentPtr;	


    struct TkWindow *nextPtr;	


    TkMainInfo *mainPtr;	






    



    char *pathName;		





    Tk_Uid nameUid;		

    Tk_Uid classUid;		


    







    XWindowChanges changes;	

    unsigned int dirtyChanges;	

    XSetWindowAttributes atts;	
    unsigned long dirtyAtts;	


    unsigned int flags;		



    



    TkEventHandler *handlerList;


    



    Tk_FocusProc *focusProc;	



    ClientData focusData;	

    




    int optionLevel;		




    



    TkSelHandler *selHandlerList;
				


    Tk_LostSelProc *selClearProc;
    ClientData selClearData;	

    



    Tk_GeometryProc *geomProc;	


    ClientData geomData;	
    int reqWidth, reqHeight;	



    int internalBorderWidth;	




    



    struct TkWmInfo *wmInfoPtr;	



} TkWindow;






extern XContext tkWindowContext;





extern TkDisplay *tkDisplayList;











































extern Tk_Uid		tkActiveUid;
extern Tk_Uid		tkDisabledUid;
extern TkMainInfo	*tkMainWindowList;
extern Tk_Uid		tkNormalUid;






extern int		TkAreaToPolygon 
# 550 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(double *polyPtr, 			    int numPoints, double *rectPtr);
extern void		TkBezierPoints 
# 552 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(double control[], 			    int numSteps, double *coordPtr);
extern void		TkBindEventProc 
# 554 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(TkWindow *winPtr, 			    XEvent *eventPtr);
extern int		TkCopyAndGlobalEval 
# 556 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(Tcl_Interp *interp, 			    char *script);
extern Time		TkCurrentTime (TkDisplay *dispPtr);
extern int		TkDeadAppCmd 
# 559 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char **argv);
extern void		TkDisplayChars 
# 563 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(Display *display, 			    Drawable drawable, GC gc, 			    XFontStruct *fontStructPtr, char *string, 			    int numChars, int x, int y, int flags);
extern void		TkEventDeadWindow (TkWindow *winPtr);
extern void		TkFileCallbackInterpDelete 
# 567 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(                                          ClientData  clientData,                                          Tcl_Interp *interp);
extern void		TkFocusDeadWindow (TkWindow *winPtr);
extern int		TkFocusFilterEvent 
# 570 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(TkWindow *winPtr, 			    XEvent *eventPtr);
extern void		TkGetButtPoints 
# 573 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(double p1[], double p2[], 			    double width, int project, double m1[], 			    double m2[]);
extern int		TkGetInterpNames 
# 575 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(Tcl_Interp *interp, 			    Tk_Window tkwin);
extern int		TkGetMiterPoints 
# 578 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(double p1[], double p2[], 			    double p3[], double width, double m1[], 			    double m2[]);
extern void		TkGrabDeadWindow (TkWindow *winPtr);
extern void		TkGrabTriggerProc (XEvent *eventPtr);
extern int		TkInitFrame 
# 583 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(Tcl_Interp *interp, 			    Tk_Window tkwin, int toplevel, int argc, 			    char *argv[]);
extern int		TkLineToArea 
# 585 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(double end1Ptr[2], 			    double end2Ptr[2], double rectPtr[4]);
extern double		TkLineToPoint 
# 587 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(double end1Ptr[2], 			    double end2Ptr[2], double pointPtr[2]);
extern void		TkMakeBezierPostscript 
# 590 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(Tcl_Interp *interp, 			    double *pointPtr, int numPoints, 			    Tk_PostscriptInfo *psInfoPtr);
extern int		TkMeasureChars 
# 593 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(XFontStruct *fontStructPtr, 			    char *source, int maxChars, int startX, int maxX, 			    int flags, int *nextXPtr);
extern void		TkOptionDeadWindow (TkWindow *winPtr);
extern int		TkOvalToArea 
# 596 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(double *ovalPtr, 			    double *rectPtr);
extern double		TkOvalToPoint 
# 598 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(double ovalPtr[4], 			    double width, int filled, double pointPtr[2]);
extern int		TkPointerEvent 
# 600 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(XEvent *eventPtr, 			    TkWindow *winPtr);
extern int		TkPolygonToArea 
# 602 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(double *polyPtr, 			    int numPoints, double *rectPtr);
extern double		TkPolygonToPoint 
# 604 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(double *polyPtr, 			    int numPoints, double *pointPtr);
extern void		TkQueueEvent 
# 606 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(TkDisplay *dispPtr, 			    XEvent *eventPtr);
extern void		TkSelDeadWindow (TkWindow *winPtr);
extern void		TkSelEventProc 
# 609 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(Tk_Window tkwin, 			    XEvent *eventPtr);
extern void		TkSelPropProc (XEvent *eventPtr);
extern void		TkUnderlineChars 
# 615 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(Display *display, 			    Drawable drawable, GC gc, 			    XFontStruct *fontStructPtr, char *string, 			    int x, int y, int flags, int firstChar, 			    int lastChar);
extern void		TkWmDeadWindow (TkWindow *winPtr);
extern void		TkWmMapWindow (TkWindow *winPtr);
extern void		TkWmNewWindow (TkWindow *winPtr);
extern void		TkWmProtocolEventProc 
# 620 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(TkWindow *winPtr, 			    XEvent *evenvPtr);
extern void		TkWmRestackToplevel 
# 622 "/usr/prac/se/hush/experimental/include/tcl-tk/tkInt.h" 
(TkWindow *winPtr, 			    int aboveBelow, TkWindow *otherPtr);
extern void		TkWmSetClass (TkWindow *winPtr);
extern void		TkWmUnmapWindow (TkWindow *winPtr);


# 8 "/usr/prac/se/hush/experimental/include/hush/tk.h" 2
# 10 "/usr/prac/se/hush/experimental/include/hush/tk.h" 

# 1 "/usr/include/X11/X.h" 1






# 659 "/usr/include/X11/X.h" 

# 12 "/usr/prac/se/hush/experimental/include/hush/tk.h" 2
}

# 12 "/usr/prac/se/hush/experimental/include/hush/hush.h" 2

# 1 "/usr/prac/se/hush/experimental/include/adt/client.h" 1



class client {
public:
virtual char* info() { return "client"; } 
virtual void notify() { cout << info() << endl; }
};






# 14 "/usr/prac/se/hush/experimental/include/hush/hush.h" 2
# 1 "/usr/prac/se/hush/experimental/include/adt/handler.h" 1



class event;
class kit;

extern event* dummy_event; /// defaults to press

extern handler_callback(client* data ,kit* tk, int argc, char** argv);

class handler : public client {
public:
virtual int dispatch(kit* _tk, int _argc, char** _argv);

virtual int operator()();

virtual void press( event&  ) { }
virtual void release( event&  ) { }
virtual void keypress( event&  ) { }
virtual void keyrelease( event&  ) { }
virtual void motion( event&  ) { }
virtual void enter( event&  ) { }
virtual void leave( event&  ) { }
virtual void other( event& ) { cout << "** other event**"; }

protected:
int argc;
char** argv;
kit* tk;
};

// the default dispatch looks as 



















// and the function that invokes the handler looks as

inline
int handler_callback(client* data , kit* tk, int argc, char** argv) {
	 //handler* h = (handler*) data;
	 return ((handler*)data)->dispatch(tk,argc,argv);
}


# 15 "/usr/prac/se/hush/experimental/include/hush/hush.h" 2

# 1 "/usr/prac/se/hush/experimental/include/hush/callback.h" 1



class client;
class kit;

typedef int command(client*, kit*, int, char**);
typedef Tcl_CmdProc tclcommand;
typedef ClientData  clientdata;
typedef Tcl_Interp*  ignore;
typedef Tcl_Interp*  tclinterp;

class genaction;
class widget;
//class tclaction;
struct callback;

extern int call_back(clientdata, ignore, int, char**);
extern widget* thewidget();
extern client* theclient();

extern callback* lastcallback();

struct callback {
int n;
char* it;
kit* tk;
client* data;
command* proc;
//tclaction* ac;
widget* w;
genaction* c;
};



# 17 "/usr/prac/se/hush/experimental/include/hush/hush.h" 2
# 1 "/usr/prac/se/hush/experimental/include/hush/action.h" 1






class handler;


///static int dummycommand( client*, int, char** ) { cout << " dummy command " << endl; return 0; }

class genaction {
public:

genaction(kit* tk, char* cmd);

genaction(kit* tk, char* s, handler* h);
genaction(kit* tk, char* s, command proc, client* c = 0, widget* w = 0, int n = 0, char* it = "");
genaction(kit* tk, char* s, tclcommand proc, clientdata c = 0);

genaction(kit* tk, handler* h);
genaction(kit* tk, command proc, client* c = 0, widget* w = 0, int n = 0, char* it = "");
genaction(kit* tk, tclcommand proc, clientdata c = 0);

char* name() { return name_; }
private:
static int n;
char name_[512];
};

class action : public genaction {  /// for the user
public:
action(char* cmd) : genaction(thekit(),cmd) { }
action(char* s, handler* h) : genaction(thekit(),s,h) { }
action(char* s, command proc, client* c = 0, widget* w = 0, int n = 0, char* it = "") :
	genaction(thekit(),s,proc,c,w,n,it) { }
action(char* s, tclcommand proc, clientdata c = 0) :
	genaction(thekit(),s,proc,c) {}

action(handler* h) : genaction(thekit(),h) { }
action(command proc, client* c = 0, widget* w = 0, int n = 0, char* it = "") :
	genaction(thekit(),proc,c,w,n,it) { }
action(tclcommand proc, clientdata c = 0) :
	genaction(thekit(),proc,c) {}

action(kit* tk, char* cmd) : genaction(tk,cmd) { }
action(kit* tk, char* s, handler* h) : genaction(tk,s,h) { }
action(kit* tk, char* s, command proc, client* c = 0, widget* w = 0, int n = 0, char* it = "") :
	genaction(tk,s,proc,c,w,n,it) { }
action(kit* tk, char* s, tclcommand proc, clientdata c = 0) :
	genaction(tk,s,proc,c) {}

action(kit* tk, handler* h) : genaction(tk,h) { }
action(kit* tk, command proc, client* c = 0, widget* w = 0, int n = 0, char* it = "") :
	genaction(tk,proc,c,w,n,it) { }
action(kit* tk, tclcommand proc, clientdata c = 0) :
	genaction(tk,proc,c) {}
};

class tclaction : public action {  /// just to fool the compiler
public:
tclaction(kit* tk, char* cmd) : action(tk,cmd) { }
tclaction(kit* tk, char* s, handler* h) : action(tk,s,h) { }
tclaction(kit* tk, char* s, command proc, client* c = 0, widget* w = 0, int n = 0, char* it = "") :
	action(tk,s,proc,c,w,n,it) { }
tclaction(kit* tk, char* s, tclcommand proc, clientdata c = 0) :
	action(tk,s,proc,c) {}
};

# 18 "/usr/prac/se/hush/experimental/include/hush/hush.h" 2

# 1 "/usr/prac/se/hush/experimental/include/adt/event.h" 1



class client;
class widget;
struct XEvent;
class kit;

// extern event* dummy_event;  // zero

class event : public handler {

protected:
void obsolete(char*s ="") {
cerr << "OBSOLETE " << " replace by event::ev-> " << s << endl;
}

public:
event() : secondary(0) { ev = 0; next = 0; }
event(event* p) : ev(p), secondary(1) { next = 0; }

virtual ~event() { if (next) delete next; }

virtual int dispatch(kit* tk_, int argc_, char* argv_[]) {
	tk = tk_; argc = argc_; argv = argv_;
	operator()();
	update();
	return 0;
	}

virtual int operator()() { return handler::operator()(); }

virtual int type() { if (ev) return ev->type(); else return 2; } 
virtual char* name() { if (ev) return ev->name(); else return "anonymous"; }
virtual void trace() { if (ev) ev->trace(); }

virtual int no() { if (ev) return ev->no(); else return 0; }
virtual char* id() { if (ev) return ev->id(); else return "anonymous"; }

virtual int x() { if (ev) return ev->x(); else return 0; }
virtual int y() { if (ev) return ev->y(); else return 0; } 

virtual int button(int i = 0) { if (ev) return ev->button(i); else return 0; }
virtual int buttonup(int i = 0) { if (ev) return ev->buttonup(i); else return 0; }

virtual int keycode() { if (ev) return ev->keycode(); else return 0; }

virtual int buttonevent(int i = 0) { if (ev) return buttonevent(i); else return 0; }
virtual int keyevent() { if (ev) return keyevent(); else return 0; }

virtual int motion() { if (ev) return ev->motion(); else return 0; }
virtual void motion( event& ) { }

event* ev;


// will become obsolete
struct callback* callback() { obsolete("callback"); return 0; }
class widget* widget() { obsolete("widget"); return 0; }
client* data() { obsolete("data"); return 0; }
struct XEvent* XEvent() { obsolete("XEvent"); return 0; }

// to effect multiple events (advanced users only)

public:
void dependent(event* e); // to define dependent events / handlers
void update(); // to activate dependent events/handlers
protected:
event* next;
void insert(event*);
int contains(event*);
int secondary;
};


# 20 "/usr/prac/se/hush/experimental/include/hush/hush.h" 2
# 22 "/usr/prac/se/hush/experimental/include/hush/hush.h" 


# 1 "/usr/prac/se/hush/experimental/include/hush/kit.h" 1



class session;
class widget;
struct XEvent;
class xevent;

class kit : public hcl {
friend class session;
friend int hush_main(kit*,int,char**,char*,int);
friend int traceX(ClientData, XEvent*);
static int n;

kit(session* s);
~kit();

void startup(int  argc, char **argv, char* name, int flags);
XEvent* last;

public:

int eval(char* cmd);
char* evaluate(char* cmd);

char* result();
void result(char* s);

int source(char* f);

void after(int n, char* cmd="");
char* send(char* it, char* cmd);

char* selection(char* options="");

void update(char* options="");

class action& action(char* name);
class action& action(char* name, handler* h);
class action& action(char* name, int proc (client*, kit*, int, char**), client* data = 0 );

class action& action(char* name, int proc( clientdata, tclinterp, int, char** ), clientdata data = 0 ); 


void quit();

void trace(int i = 1);
void notrace();


class event event();

widget* root(); 
widget* pack(class widget* w, char* options = "{top fillx filly}");
widget* pack(char* w, char* options = "{top fillx filly}");

Tk_Window tkwin();  /// returns the root Tk window

private:

void event(struct XEvent* p);

int init();
void install(kit* tk, int argc, char** argv);
void program(kit* tk, int argc, char** argv);
char* initfile();

protected:
class widget* root_;
int traceon;
char buf[4*1024];

session* session_;
};


# 25 "/usr/prac/se/hush/experimental/include/hush/hush.h" 2

# 1 "/usr/prac/se/hush/experimental/include/adt/tclstring.h" 1



# 1 "/usr/local/lang/CC/include/iostream.h" 1















# 26 "/usr/local/lang/CC/include/iostream.h" 
# 624 "/usr/local/lang/CC/include/iostream.h" 

# 5 "/usr/prac/se/hush/experimental/include/adt/tclstring.h" 2
# 1 "/usr/local/lang/CC/include/strings.h" 1








# 11 "/usr/local/lang/CC/include/strings.h" 


# 6 "/usr/prac/se/hush/experimental/include/adt/tclstring.h" 2


class tclstringrep {
friend tclstring;
private:
tclstringrep() {
	ds = &buffer;
	Tcl_DStringInit(ds);
	count = 1;
	}
~tclstringrep() {
	Tcl_DStringFree(ds);
	}
int count;
Tcl_DString* ds;
Tcl_DString buffer;
};


class tclstring {
public:

tclstring() { init(); } 
tclstring(char* s) { init(); concat(s); }
tclstring(tclstring& a) { rep = a.rep; rep->count++; } 

~tclstring() { if ( --rep->count <= 0 ) delete rep; }

tclstring& operator=( char* s ) { 
	   if (--rep->count <= 0 ) delete rep;
	   init(); append(s);
	   return *this;
	   }

tclstring& operator=( tclstring& a ) { 
	   a.rep->count++;
	   if (--rep->count <= 0 ) delete rep;
	   rep = a.rep;
	   return *this;
	   }

tclstring& start() {
	   Tcl_DStringStartSublist(rep->ds);
	   return *this;
	   }

tclstring& end() {
	   Tcl_DStringEndSublist(rep->ds);
	   return *this;
	   }

tclstring& trunc(int n) {
	   Tcl_DStringTrunc(rep->ds,n);
	   return* this;
	   }

tclstring& concat( char* s) {
           Tcl_DStringAppend(rep->ds,s,strlen(s));
	   return *this;
	   }

tclstring& concat( tclstring& a ) {
	   Tcl_DStringAppendElement(rep->ds, a.value());
	   return *this;
	   }

tclstring& append( char* s ) {
           Tcl_DStringAppendElement(rep->ds,s);
	   return *this;
	   }

tclstring& append( tclstring& a ) {
	   Tcl_DStringAppendElement(rep->ds, a.value());
	   return *this;
	   }

int length() { return ((rep->ds)->length) + 1; } 

char* value() { return ((rep->ds)->string); }

int match(char* s) {
	return Tcl_StringMatch(value(),s);
	}
	
int regmatch(char* s) {
	return Tcl_RegExpMatch(tk->interp(),value(),s);
	}

char* tilde() {
	Tcl_DString x; char* p;
	return p = Tcl_TildeSubst(tk->interp(), value(), &x );
	}

char* lindex(int n);
char* lindex(char* id);

int llength();

operator char*() { return value(); }

Tcl_DString* ds() { return rep->ds; }

private:
void init() { rep = new tclstringrep(); tk = thekit(); }
tclstringrep* rep;
kit* tk;
};


# 27 "/usr/prac/se/hush/experimental/include/hush/hush.h" 2
# 1 "/usr/prac/se/hush/experimental/include/adt/var.h" 1




class var : public event {
public:

var(var& v) : nm_(v.name()) { tk = v.tk; } 

var( char* s ) : nm_(s) {
	tk = thekit();
	sprintf(buf,"global %s",s);
	tk->eval( buf );
	} 

char* operator=(char* s) {
	sprintf(buf,"set %s \"%s\"", name(),s);
	return tk->evaluate( buf );
	}

char* operator=(int i) {
	sprintf(buf,"set %s %d", name(),i);
	return tk->evaluate( buf );
	}

char* operator=(float f) {
	sprintf(buf,"set %s %f", name(),f);
	return tk->evaluate( buf );
	}

void trigger(action& ac, char* options = "rwu", char* args = "") { 
	sprintf(buf,"trace variable %s %s %s %s",name(),options,ac.name(),args);
	tk->eval( buf );
	}

void wait() {
	sprintf(buf,"tkwait variable %s",name());
	tk->eval( buf );
	}

char* name() { return (char*) nm_; }

//virtual void operator()() { }
int operator()() { 
	sprintf(buf,"set %s",name());
	return (int) tk->evaluate(buf);
	}

char* value() { 
	sprintf(buf,"set %s",name());
	return tk->evaluate(buf);
	}

operator char*() { 
	sprintf(buf,"set %s",name());
	return tk->evaluate(buf);
	}

operator int() { 
	int n = 0;
	sprintf(buf,"set %s",name());
	sscanf(tk->evaluate(buf),"%d",&n);
	return n;
	}

operator float() { 
	int f = 0;
	sprintf(buf,"set %s",name());
	sscanf(tk->evaluate(buf),"%f",&f);
	return f;
	}

protected:
kit* tk;
char buf[512];
tclstring nm_;
};


# 28 "/usr/prac/se/hush/experimental/include/hush/hush.h" 2
# 1 "/usr/prac/se/hush/experimental/include/adt/table.h" 1



//static char* table_info = "abstract table";
// extern "C" { //#include <tclHash.h> }

# 1 "/usr/prac/se/hush/experimental/include/adt/iter.h" 1



template<class T>
class iter {
public:
inline iter(iter<T>* p_);
virtual T* operator()()  { (void)((p) || ((cerr << "Precondition "" failed: p, file " << "/usr/prac/se/hush/experimental/include/adt/iter.h" << ", line " << 8 << endl), abort(), 0)); return (*p)(); }
private:
iter<T>* p;
};

template<class T> inline iter<T>::iter(iter<T>* p_) { p = p_; }

# 8 "/usr/prac/se/hush/experimental/include/adt/table.h" 2
# 1 "/usr/prac/se/hush/experimental/include/adt/DummyHashEntry.h" 1



template<class T>
class DummyHashEntry {
public:
DummyHashEntry( Tcl_HashEntry* p_ ) { p = p_; }

T* operator=( T* v ) {
	((p)->clientData = (ClientData) ( (ClientData) v));
	return v;
	}

operator T*() {
	return (T*) ((p)->clientData);
	}

private:
Tcl_HashEntry* p;
};


# 9 "/usr/prac/se/hush/experimental/include/adt/table.h" 2



template<class T>
class table {
public:
table() {
	tbl = &htbl;
	Tcl_InitHashTable(tbl,0);
	}

~table() {
	Tcl_DeleteHashTable(tbl);
	}


void entry(char* k, T* v) {
	int n;
	Tcl_HashEntry* p;
	do {
		p = (*((tbl)->createProc))(tbl, k,  &n);
	} while( !n );
	((p)->clientData = (ClientData) ( (ClientData) v));
	}

T* find(char* k) {
	Tcl_HashEntry* p;
	p = (*((tbl)->findProc))(tbl, k);
	if (!p)  cerr << "error finding " << k << endl;
	return (T*) ((p)->clientData);
	}

T* del(char* k) {
	Tcl_HashEntry* p;
	p = (*((tbl)->findProc))(tbl, k);
	if (!p)  cerr << "error finding " << k << endl;
	T* v = (T*) ((p)->clientData);
	Tcl_DeleteHashEntry( p );
	return v;
	}

inline iter<T> search();

char* stats() {
	return Tcl_HashStats( tbl );
	}
	
T& operator()(char* k) { return *find(k); }

DummyHashEntry<T>& operator[](char* k) {  /// trick to allow assignment
	int n;
	Tcl_HashEntry* p;
	do {
		p = (*((tbl)->createProc))(tbl, k,  &n);
	} while( !n );
	return * new DummyHashEntry<T>( p );
	}
	
protected:
//friend T* operator=(Tcl_HashEntry*, T* );
//friend class tableiter<T>;
Tcl_HashTable htbl;
Tcl_HashTable* tbl;
};


template<class T> 
class tableiter : public iter<T> {
public:
tableiter(Tcl_HashTable* tbl_) : iter<T>(this) {
	tbl = tbl_; sp = &s;
	p = Tcl_FirstHashEntry(tbl,sp);
	//if (p) cout << "oke"; else cout << "wrong"; cout << endl;
	}

void dummy(T*) { }

T* operator()() {
	//if (p) cout << "oke"; else cout << "wrong"; cout << endl;
	T* v = p ? (T*) ((p)->clientData) : 0;
	p = Tcl_NextHashEntry(sp);
	return v;
	}
	
private:
Tcl_HashSearch* sp;
Tcl_HashTable* tbl;
Tcl_HashSearch s;
Tcl_HashEntry* p;
};

template<class T>
inline iter<T> table<T>::search() { return * new tableiter<T>(tbl); }


# 29 "/usr/prac/se/hush/experimental/include/hush/hush.h" 2

# 1 "/usr/prac/se/hush/experimental/include/widgets/widgets.h" 1
# 1 "/usr/prac/se/hush/experimental/include/widgets/widget.h" 1



# 1 "/usr/prac/se/hush/experimental/include/hush/session.h" 1
# 39 "/usr/prac/se/hush/experimental/include/hush/session.h" 

# 5 "/usr/prac/se/hush/experimental/include/widgets/widget.h" 2
# 1 "/usr/local/lang/CC/include/stdio.h" 1


# 232 "/usr/local/lang/CC/include/stdio.h" 

# 6 "/usr/prac/se/hush/experimental/include/widgets/widget.h" 2


# 1 "/usr/prac/se/hush/experimental/include/adt/client.h" 1
# 14 "/usr/prac/se/hush/experimental/include/adt/client.h" 

# 9 "/usr/prac/se/hush/experimental/include/widgets/widget.h" 2
# 1 "/usr/prac/se/hush/experimental/include/hush/action.h" 1
# 69 "/usr/prac/se/hush/experimental/include/hush/action.h" 

# 10 "/usr/prac/se/hush/experimental/include/widgets/widget.h" 2
# 1 "/usr/prac/se/hush/experimental/include/adt/handler.h" 1
# 60 "/usr/prac/se/hush/experimental/include/adt/handler.h" 

# 11 "/usr/prac/se/hush/experimental/include/widgets/widget.h" 2
# 1 "/usr/prac/se/hush/experimental/include/hush/dv-string.h" 1



# 1 "/usr/local/lang/CC/include/iostream.h" 1















# 26 "/usr/local/lang/CC/include/iostream.h" 
# 624 "/usr/local/lang/CC/include/iostream.h" 

# 5 "/usr/prac/se/hush/experimental/include/hush/dv-string.h" 2
# 1 "/usr/local/lang/CC/include/strings.h" 1








# 11 "/usr/local/lang/CC/include/strings.h" 


# 6 "/usr/prac/se/hush/experimental/include/hush/dv-string.h" 2


class stringrep {
friend dvstring;
private:
stringrep(const char* s) {
	rep = new char[strlen(s)+1]; strcpy(rep,s);
	count = 1;
	}
~stringrep() { delete rep; }
char* rep;
int count;
};


class dvstring {
public:

dvstring() { rep = new stringrep(""); }
dvstring(const char* s) { rep = new stringrep(s); }
dvstring(const dvstring& a) { rep = a.rep; rep->count++; } 
dvstring& operator=( dvstring& a ) { 
	   a.rep->count++;
	   if (--rep->count <= 0 ) delete rep;
	   rep = a.rep;
	   return *this;
	   }

dvstring operator+( dvstring& a );

int length() { return strlen(rep->rep); } 

operator char*() { return rep->rep; }
private:
stringrep* rep;
};

inline dvstring dvstring::operator+( dvstring& a ) { 
	char* tmp = new char[length() + a.length()];
	strcpy(tmp,rep->rep); strcat(tmp, a.rep->rep);
	dvstring result( tmp ); delete[] tmp;
	return result;
	}


# 12 "/usr/prac/se/hush/experimental/include/widgets/widget.h" 2

extern kit* thekit();

# 17 "/usr/prac/se/hush/experimental/include/widgets/widget.h" 


class widget : public handler {
protected:
static int widgetno;
virtual char* packcmd() { return "append"; }
//widget(widget&) { }
public:
virtual char* type() { return "widget"; }

//widget() {}
//widget() { sprintf(buf,".widget%d",++widgetno); path(buf); }

widget(char* s) { path(s); tk = thekit(); }
widget(widget* w, char* p) { 
	sprintf(buf,"%s%s",w->path(),p);
	if( buf[0]=='.' && buf[1]=='.' ) path(buf+1); else path(buf);
	tk = thekit();
	}

widget(widget& w) { path(w.path()); tk = thekit(); }

static widget* make(char *s, char* p, char* options = "") {
	char buf[512];
	sprintf(buf,"%s %s %s",s,p,options);
	thekit()->eval( buf );
	return new widget(p);
	}

virtual ~widget() {  delete[] _path; }

char* info() { return "widget"; }

char* path() { return  _path; }

int eval(char* s) {
     sprintf(buf,"%s %s",path(),s);	
     return tk->eval(buf);
     }

char* result() { return tk->result(); }

char* evaluate(char* cmd) { eval(cmd); return result(); }


void destroy() { 
	sprintf(buf,"destroy %s",path());
	tk->eval( buf );
	}


virtual void configure(char* s) { 
	sprintf(buf,"%s configure %s",path(),s);
	tk->eval( buf );
	}

virtual widget* pack(widget* w, char* options = "{top fillx filly}" ) {
	cout << "packing" << endl;
	cout << path() << end;
	sprintf(buf,"pack %s %s %s %s",packcmd(), path(), w->path(), options);
	tk->eval(buf);
	return this;
	}

virtual widget* pack(char* w, char* options = "{top fillx filly}" ) {
	sprintf(buf,"pack %s %s %s %s",packcmd(),path(), w, options);
	tk->eval(buf);
	return this;
	}

virtual void place(char* options) {
	sprintf(buf,"place %s %s",path(), options);
	tk->eval(buf);
	}


virtual bind(char *s, char* cmd, char* args = "") {
	action a(cmd);
	return direct(s,a,args);
	}

virtual bind(char *s, command proc, client* data = 0, char* args = "" ) {
	if (!data) data = this;
	action a(tk,proc,data,this);
	return direct(s,a,args);
	}

virtual bind(char *s, handler* h, char* args = "" ) {
	action a(tk,handler_callback,h,this);
	return direct(s,a,args);
	}

virtual bind(char *s, action& a, char* args = "" ) {
        return direct(s,a,args);
	}



void handler(char* cmd, char* args = "") {
	action ac(tk,cmd);
	install(ac,args);
	}

void handler(command proc, client* data = 0, char* args = "" ) {
	if (!data) data = this;
	action ac(tk,proc,data,this);
	install(ac, args);
	}

void handler(class handler* h, char* args = "" ) {
	action ac(tk,handler_callback,h,this);
	install(ac,args);
	}

void handler(action& ac, char* args = "" ) {
	install(ac,args);
	}

void source(char* type, char* args, char* options="") {
	sprintf(buf,"drag&drop source %s -button 3 -tokencmd {package_%s %s} -sendcmd send_%s %s",
	  path(),type,args,type,options);
	  tk->eval( buf );
	  }

void target(char* type, action& ac, char* args, char* options="") {
	sprintf(buf,"drag&drop target %s handler {%s {%s %s}} %s",
	  path(),type,ac.name(),args,options);
	  tk->eval( buf );
	  }

void focus(char* options = "") {
	sprintf(buf,"focus %s %s", options, path()); 
	tk->eval( buf );
	}

void grab(char* options = "") {
	sprintf(buf,"grab %s %s", options, path()); 
	tk->eval( buf );
	}

//class kit* kit() { return tk; }
//void kit(class kit* k) { tk = k; }

void wait() {
	sprintf(buf,"tkwait window %s",path());
	tk->eval( buf );
	}

# 170 "/usr/prac/se/hush/experimental/include/widgets/widget.h" 


protected:
void init(char* options) {
	sprintf(buf,"%s %s %s",type(),path(),options);
	tk->eval( buf );
	}

virtual void install(action& , char*) { }

virtual direct(char *s, action& a, char* args = "" ) {
	sprintf(buf,"bind %s %s { %s %s }", path(),s,a.name(),args);
	return tk->eval( buf );
	}


void path( char* s) { dvstring x(s); _path = x; }
void path( widget* w, char* s) { 
	sprintf(buf,"%s%s",w->path(),s);
	dvstring x(buf); _path = x;
	}
char buf[512];
class kit* tk;
private:
dvstring _path;
};

//inline widget* theroot() { return new widget("."); }


# 2 "/usr/prac/se/hush/experimental/include/widgets/widgets.h" 2

# 39 "/usr/prac/se/hush/experimental/include/widgets/widgets.h" 

# 31 "/usr/prac/se/hush/experimental/include/hush/hush.h" 2
# 1 "/usr/prac/se/hush/experimental/include/handlers/handlers.h" 1



# 8 "/usr/prac/se/hush/experimental/include/handlers/handlers.h" 



# 32 "/usr/prac/se/hush/experimental/include/hush/hush.h" 2

# 1 "/usr/prac/se/hush/experimental/include/hush/external.h" 1
// used to initialize hush -- don t call these

extern void init_hcl( kit* );
extern void init_tk( kit* );
extern void init_hush( kit* );

extern "C" {
void init_expect( Tcl_Interp* );
void init_graph( Tcl_Interp* );

void init_interp( Tcl_Interp* );

void init_dp( Tcl_Interp* );

void init_itcl( Tcl_Interp* );


void init_vport( Tcl_Interp* );

void init_photo( Tcl_Interp* );

void init_dragdrop( Tcl_Interp* );

void init_meters( Tcl_Interp* );

void init_tree( Tcl_Interp* );
void init_steal( Tcl_Interp* );
}


// Usage

inline void init_expect( kit* tk)  { init_expect(tk->interp()); }
inline void init_graph( kit* tk)  { init_graph(tk->interp()); }


inline void init_interp( kit* tk) { init_interp(tk->interp()); }

inline void init_dp( kit* tk) { init_dp(tk->interp()); }

inline void init_itcl( kit* tk) { init_itcl(tk->interp()); }


inline void init_vport( kit* tk) {  init_vport(tk->interp()); }

inline void init_photo( kit* tk)  { init_photo(tk->interp()); }

inline void init_dragdrop( kit* tk) { init_dragdrop(tk->interp()); }

inline void init_meters( kit* tk) { init_meters(tk->interp()); }

inline void init_tree( kit* tk) { init_tree(tk->interp()); }

inline void init_steal( kit* tk) { init_steal(tk->interp()); }
# 34 "/usr/prac/se/hush/experimental/include/hush/hush.h" 2




# 2 "hush-init.c" 2

Tcl_Interp* tk_mainInterp;

# 26 "hush-init.c" 


# 33 "hush-init.c" 


# 59 "hush-init.c" 



# 74 "hush-init.c" 
# 96 "hush-init.c" 


static kit* tk;

kit* thekit() { return tk; }

# 107 "hush-init.c" 



// In order to interprete files with -f (and still go-back )

static int callprog = 1;

int
gobackCmd ( // tkwin, interp, argc, argv)
    ClientData ,  
    Tcl_Interp *,	     
    int argc,		     
    char **argv)	     
{


    callprog = 1;
    return 0;
}

// Like a main ...

# 328 "hush-init.c" 




# 344 "hush-init.c" 


# 484 "hush-init.c" 






























static Tcl_Interp *interp;	
static Tcl_DString combuf;	

char *tcl_RcFileName = 0;	




# 528 "hush-init.c" 






static int		CheckmemCmd 
# 535 "hush-init.c" 
(ClientData clientData, 			    Tcl_Interp *interp, int argc, char *argv[]);


















int
hush_main(kit* tk, int argc, char** argv, char* appname, int flags)
{
    char buffer[1000], *cmd, *args, *fileName;
    int code, gotPartial, tty;
    int exitCode = 0;

    ::tk = (kit*) tk;
    Tcl_Interp* interp = tk->interp();
    //interp = Tcl_CreateInterp();
# 568 "hush-init.c" 


    





    fileName = 0;
    if ((argc > 1) && (argv[1][0] != '-')) {
	fileName = argv[1];
	argc--;
	argv++;
    }
    args = Tcl_Merge(argc-1, argv+1);
    Tcl_SetVar(interp, "argv", args, 1);
    free(args);
    sprintf(buffer, "%d", argc-1);
    Tcl_SetVar(interp, "argc", buffer, 1);
    Tcl_SetVar(interp, "argv0", (fileName != 0) ? fileName : argv[0],
	    1);

    



    tty = isatty(0);
    Tcl_SetVar(interp, "tcl_interactive",
	    ((fileName == 0) && tty) ? "1" : "0", 1);

    



     tk->command("go-back", gobackCmd);

     tk->init();
     tk->install(tk,argc,argv);

    





    




    if (fileName != 0) {
	code = Tcl_EvalFile(interp, fileName);
	if (code != 0) {
	    fprintf((&_iob[2]), "%s\n", interp->result);
	    exitCode = 1;
	}
	goto done;
    }

    




    if (tcl_RcFileName != 0) {
	Tcl_DString buffer;
	char *fullName;

	fullName = Tcl_TildeSubst(interp, tcl_RcFileName, &buffer);
	if (fullName == 0) {
	    fprintf((&_iob[2]), "%s\n", interp->result);
	} else {
	    if (access(fullName, 04 ) == 0) {
		code = Tcl_EvalFile(interp, fullName);
		if (code != 0) {
		    fprintf((&_iob[2]), "%s\n", interp->result);
		}
	    }
	}
	Tcl_DStringFree(&buffer);
    }

    



     if (callprog) tk->program(tk,argc,argv);

    gotPartial = 0;
    Tcl_DStringInit(&combuf);
    while (1) {
	(void) (((&_iob[0]))->_flag &= ~(040|020));
	if (tty) {
	    char *promptCmd;

	    promptCmd = Tcl_GetVar(interp,
		gotPartial ? "tcl_prompt2" : "tcl_prompt1", 1);
	    if (promptCmd == 0) {
		defaultPrompt:
		if (!gotPartial) {
		    fputs("% ", (&_iob[1]));
		}
	    } else {
		code = Tcl_Eval(interp, promptCmd);
		if (code != 0) {
		    fprintf((&_iob[2]), "%s\n", interp->result);
		    Tcl_AddErrorInfo(interp,
			    "\n    (script that generates prompt)");
		    goto defaultPrompt;
		}
	    }
	    fflush((&_iob[1]));
	}
	if (fgets(buffer, 1000, (&_iob[0])) == 0) {
	    if (((((&_iob[0]))->_flag&040)!=0)) {
		if (errno == 4) {
		    if (tcl_AsyncReady) {
			(void) Tcl_AsyncInvoke((Tcl_Interp *) 0, 0);
		    }
		    (void) (((&_iob[0]))->_flag &= ~(040|020));
		} else {
		    goto done;
		}
	    } else {
		if (!gotPartial) {
		    goto done;
		}
	    }
	    buffer[0] = 0;
	}
	cmd = Tcl_DStringAppend(&combuf, buffer, -1);
	if ((buffer[0] != 0) && !Tcl_CommandComplete(cmd)) {
	    gotPartial = 1;
	    continue;
	}

	gotPartial = 0;
	code = Tcl_RecordAndEval(interp, cmd, 0);
	Tcl_DStringFree(&combuf);
	if (code != 0) {
	    fprintf((&_iob[2]), "%s\n", interp->result);
	} else if (tty && (*interp->result != 0)) {
	    printf("%s\n", interp->result);
	}
# 718 "hush-init.c" 

    }

    





    done:
    sprintf(buffer, "exit %d", exitCode);
    Tcl_Eval(interp, buffer);
    return 1;
}



















# 770 "hush-init.c" 


