This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Internal Compiler Error (bug?)


[08:51:05 Tue Aug 15
(data@toaster):/usr/local/src/system/ncurses-5.1/tack]$ cd ../objects; gcc
-v --save-temps -DHAVE_CONFIG_H -I../tack -I.  -DNDEBUG -I. -I../include
-I/usr/local/include -O2  -c ../tack/pad.c
Reading specs from /usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/cpp -lang-c -v -I../tack
-I. -I. -I../include -I/usr/local/include -D__GNUC__=2 -D__GNUC_MINOR__=95
-Dunix -D__osf__ -D_LONGLONG -DSYSTYPE_BSD -D_SYSTYPE_BSD -D__unix__
-D__osf__ -D_LONGLONG -D__SYSTYPE_BSD__ -D_SYSTYPE_BSD -D__unix
-D__SYSTYPE_BSD -Asystem(unix) -Asystem(xpg4) -D__OPTIMIZE__
-D__LANGUAGE_C__ -D__LANGUAGE_C -DLANGUAGE_C -Acpu(alpha) -Amachine(alpha)
-D__alpha -D__alpha__ -D__alpha_ev4__ -Acpu(ev4) -DHAVE_CONFIG_H -DNDEBUG
../tack/pad.c pad.i
GNU CPP version 2.95.2 19991024 (release)
#include "..." search starts here:
#include <...> search starts here:
 ../tack
 .
 ../include
 /usr/local/include
 /usr/local/include

/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/../../../../alpha-dec-osf4.0e/include
 /usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/../../../../include/g++-3
End of omitted list.
 /usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/cc1 pad.i -quiet
-dumpbase pad.c -O2 -version -o pad.s
GNU C version 2.95.2 19991024 (release) (alpha-dec-osf4.0e) compiled by
GNU C version 2.95.2 19991024 (release).
../tack/pad.c: In function `pad_home1':
../tack/pad.c:333: Internal compiler error in `int_mode_for_mode', at
stor-layout.c:202
Please submit a full bug report.
See <URL:http://www.gnu.org/software/gcc/faq.html#bugreport> for
instructions.
[08:51:35 Tue Aug 15
(data@toaster):/usr/local/src/system/ncurses-5.1/objects]$


# 1 "../tack/pad.c"
 




















# 1 "../tack/tack.h" 1
 




















 




 





# 1 "../include/ncurses_cfg.h" 1
 
 



























 


 


























































































	 











# 33 "../tack/tack.h" 2










# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/sys/types.h" 1 3
 





















 


 

 
 

 



 


 














 













 









# 1 "/usr/include/standards.h" 1 3
 





















 


 

 
 



 


 













 












                                                                   



 
















 



 





 




 







 







 
















 







 









 






 


 

 











 
















 
 















# 223 "/usr/include/standards.h" 3


 












 
 






 
 






# 262 "/usr/include/standards.h" 3



# 77 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/sys/types.h" 2 3





 








typedef long int ptrdiff_t;









# 115 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/sys/types.h" 3





    typedef unsigned int wchar_t;







typedef unsigned int wctype_t;




typedef long            fpos_t;




typedef int            time_t;




typedef int             clock_t;









typedef long unsigned int size_t;









typedef long                    ssize_t;  


 


typedef	unsigned char	uchar_t;
typedef	unsigned short	ushort_t;
typedef	unsigned int	uint_t;
typedef unsigned long	ulong_t;
typedef	volatile unsigned char	vuchar_t;
typedef	volatile unsigned short	vushort_t;
typedef	volatile unsigned int	vuint_t;
typedef volatile unsigned long	vulong_t;




typedef	struct	{ long r[1]; } *physadr_t;
 



typedef	struct	label_t	{
	long	val[10];
} label_t;


# 200 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/sys/types.h" 3
































typedef int		level_t;
typedef	int		daddr_t;	 
typedef	char *		caddr_t;	 
typedef long *		qaddr_t;         
typedef char *          addr_t;
typedef	uint_t		ino_t;		 
typedef short		cnt_t;
typedef int		dev_t;		 
typedef	int		chan_t;		 

# 303 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/sys/types.h" 3





typedef long    off_t;			 


typedef unsigned long	rlim_t;		 
typedef	int		paddr_t;
typedef	ushort_t	nlink_t;



typedef int    		key_t;		 




typedef	uint_t		mode_t;		 







typedef uint_t		uid_t;		 





typedef uint_t		gid_t;		 




typedef	void *		mid_t;		 




typedef	int		pid_t;		 


typedef char		slab_t[12];	 

typedef ulong_t		shmatt_t;	 
typedef ulong_t		msgqnum_t;	 
typedef ulong_t		msglen_t;	 



        typedef unsigned int wint_t;          


 


typedef unsigned long	sigset_t;


 












typedef struct __pthread_attr_t {
    long		__valid  ;
    char*		__name  ;
    unsigned long	__arg  ;
    unsigned long	__reserved  [19];
    } pthread_attr_t;

typedef struct __pthread_mutexattr_t {
    long		__valid  ;
    unsigned long	__reserved  [15];
    } pthread_mutexattr_t;

typedef struct __pthread_condattr_t {
    long		__valid  ;
    unsigned long	__reserved  [13];
    } pthread_condattr_t;















 













typedef struct __pthread_t {
    void*		__reserved1  ;	 
    void*		__reserved2  ;	 
    unsigned short	__size  ;	  	 
    unsigned char	__version  ;	 
    unsigned char	__reserved3  ;	 
    unsigned char	__external  ;	 
    unsigned char	__reserved4  [2];	 
    unsigned char	__creator  ;	 
    unsigned long	__sequence  ;	 
    unsigned long	__reserved5  [2];	 
    void*		__per_kt_area  ;	 
    void*		__stack_base  ;	 
    void*		__stack_reserve  ;	 
    void*		__stack_yellow  ;	 
    void*		__stack_guard  ;	 
    unsigned long	__stack_size  ;	 
    void**		__tsd_values  ;	 
    unsigned long	__tsd_count  ;	 
    unsigned int	__reserved6  ;	 
    unsigned int	__reserved7  ;	 
    unsigned int	__thread_flags  ;	 
    int			__thd_errno  ;	 
    void*		__stack_hiwater  ;  
    } *pthread_t, pthreadTeb_t;

typedef volatile struct __pthread_mutex_t {
    unsigned int	__lock  ;
    unsigned int	__valid  ;
    char*		__name  ;
    unsigned int	__arg  ;
    unsigned int	__depth  ;
    unsigned long	__sequence  ;
    unsigned long	__owner  ;
    void*		__block  ;
    } pthread_mutex_t;

typedef volatile struct __pthread_cond_t {
    unsigned int	__state  ;
    unsigned int	__valid  ;
    char*		__name  ;
    unsigned int	__arg  ;
    unsigned long	__sequence  ;
    void*		__block  ;
    } pthread_cond_t;

typedef unsigned int	pthread_key_t;

typedef volatile struct __pthread_once_t {
    long	__state  ;
    long	__reserved  [10];
    } pthread_once_t;




 




typedef long            timer_t;         



















typedef void (*sig_t)  (int,void (*)(int))  ;





 






typedef pid_t		id_t;		 
					 
					 
					 
					 
typedef unsigned int	useconds_t;	 





 


typedef uint_t	major_t;       
typedef uint_t	minor_t;       
typedef uint_t	devs_t;        
typedef uint_t	unit_t;        

 






 










# 1 "/usr/include/mach/machine/vm_types.h" 1 3
 





















 


 

 
 





















 



 



 






 






typedef	unsigned long	vm_offset_t;
typedef	unsigned long	vm_size_t;



# 555 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/sys/types.h" 2 3


 


typedef	uchar_t		uchar;
typedef	ushort_t	ushort;
typedef	uint_t		uint;
typedef ulong_t		ulong;

typedef	physadr_t	physadr;


 
typedef	uchar_t		u_char;
typedef	ushort_t 	u_short;
typedef	uint_t		u_int;
typedef	ulong_t		u_long;
typedef	vuchar_t	vu_char;
typedef	vushort_t 	vu_short;
typedef	vuint_t		vu_int;
typedef	vulong_t	vu_long;





typedef struct  _quad { int val[2]; } quad;


typedef	long	swblk_t;
typedef u_long	fixpt_t;

# 1 "/usr/include/sys/select.h" 1 3
 





















 


 

 
 

 



 




 











# 118 "/usr/include/sys/select.h" 3




 








# 144 "/usr/include/sys/select.h" 3


typedef int	fd_mask;



 



















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





# 202 "/usr/include/sys/select.h" 3











 









extern void bzero  (char *, int)  ;






struct timeval;
int select  (int, fd_set *, fd_set *, fd_set *, struct timeval *)  ;








# 588 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/sys/types.h" 2 3




 
typedef unsigned char sa_family_t;

 
typedef	unsigned int	in_addr_t;
 
typedef	unsigned short	in_port_t;






# 43 "../tack/tack.h" 2

# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdlib.h" 1 3
 





















 


 

 
 



 


 










                                                                   









 








 








# 84 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdlib.h" 3


 



# 120 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdlib.h" 3


typedef struct div_t  {			 
	int quot;			 
	int rem; } div_t;			 

typedef struct ldiv_t  {		 
	long int quot;			 
	long int rem; } ldiv_t;		 










 





extern int __getmbcurmax  (void)  ;

 


extern int	mblen  (const char *, size_t)  ;
extern size_t	mbstowcs  (wchar_t *, const char *, size_t)  ;
extern int	mbtowc  (wchar_t *, const char *, size_t)  ;
extern size_t	wcstombs  (char *, const wchar_t *, size_t)  ;
extern int	wctomb  (char *, wchar_t)  ;


extern int	rpmatch  (const char *)  ;

extern void 	*valloc  (size_t )  ;


extern double 	atof  (const char *)  ;
extern int 	atoi  (const char *)  ;
extern long int atol  (const char *)  ;
extern double 	strtod  (const char *, char **)  ;
extern long int strtol  (const char *, char **, int )  ;
extern unsigned long int strtoul  (const char *, char **, int )  ;
extern int 	rand  (void)  ;
extern void	srand  (unsigned int )  ;
extern void 	*calloc  (size_t , size_t )  ;
extern void	free  (void *)  ;
extern void	*malloc  (size_t )  ;
extern void 	*realloc  (void *, size_t )  ;






 
# 189 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdlib.h" 3

extern long	 a64l    (const char *)  ;
extern char	*  l64a    (long)  ;
extern int	 ttyslot    (void)  ;






extern char	*ptsname  (int)  ;














extern void	abort  (void)  ;
extern int	atexit  (void (*)(void))  ;
extern void	exit  (int )  ;
extern char	*getenv  (const char *)  ;
extern int 	system  (const char *)  ;
extern void 	*bsearch  (const void *, const void *, size_t , size_t , int(*)(const void *, const void *))  ;
extern void 	qsort  (void *, size_t , size_t ,int(*)(const void *, const void *))  ;
extern int 	abs  (int )  ;
extern struct div_t	div  (int , int )  ;
extern long int	labs  (long int )  ;
extern struct ldiv_t 	ldiv  (long int , long int )  ;

















extern int	_Prand_r    (unsigned int *)  ;























# 274 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdlib.h" 3


extern double	drand48  (void)  ;
extern double	erand48  (unsigned short [])  ;
extern long	jrand48  (unsigned short [])  ;
extern void	lcong48  (unsigned short [])  ;
extern long	lrand48  (void)  ;
extern long	mrand48  (void)  ;
extern long	nrand48  (unsigned short [])  ;
extern unsigned short *seed48  (unsigned short [])  ;
extern void	srand48  (long)  ;
extern int 	putenv  (const char *)  ;
extern void	setkey  (const char *)  ;

# 298 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdlib.h" 3









 





extern char	*initstate  (unsigned int, char *, int)  ;
extern char	*setstate  (char *)  ;
extern int	grantpt  (int)  ;
extern int	getsubopt  (char **, char *const *, char **)  ;




extern int	random  (void)  ;
extern int	srandom  (unsigned int)  ;

extern char 	*realpath  (const char *, char *)  ;
extern int	unlockpt  (int)  ;










 
# 1 "/usr/include/getopt.h" 1 3
 





















 


 


 


 
 












extern int getopt  (int, char * const [], const char *)  ;




extern char *optarg;
extern int optind;
extern int optopt;
extern int opterr;


# 337 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdlib.h" 2 3


extern int 	clearenv  ()  ;
extern char 	*getpass  (const char *)  ;




extern char 	*mktemp  (char *)  ;
extern int 	mkstemp  (char *)  ;


 









char	*ecvt  (double, int, int *, int *)  ;
char	*fcvt  (double, int, int *, int *)  ;
char	*gcvt  (double, int, char *)  ;










# 44 "../tack/tack.h" 2

# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/unistd.h" 1 3
 





















 


 

 
 



 



 


























# 1 "/usr/include/sys/access.h" 1 3
 





















 


 

 
 

 



 




 

 











 








 





 






















# 64 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/unistd.h" 2 3


 







 

# 1 "/usr/include/sys/seek.h" 1 3
 





















 


 


 



 






 











# 76 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/unistd.h" 2 3



 

extern char **environ;           








extern ssize_t	pread  (int, void *, size_t, off_t)  ;
extern ssize_t	pwrite  (int , const void *, size_t, off_t)  ; 


extern ssize_t	read  (int, void *, size_t)  ;
extern ssize_t	write  (int , const void *, size_t)  ; 


extern int access  (const char *, int )  ;
extern unsigned int alarm  (unsigned int )  ;
extern int chdir  (const char *)  ;
extern int chown  (const char *, uid_t , gid_t )  ;
extern int chroot  (const char *)  ;
extern int close  (int )  ;
extern size_t confstr  (int, char *, size_t)  ;



extern int dup  (int )  ;
extern int dup2  (int , int )  ;

 
extern int execl  (const char *, const char *, ...)  ;
extern int execv  (const char *, char *const[])  ;
extern int execle  (const char *, const char *, ...)  ; 
extern int execve  (const char *, char *const[], char *const[])  ;
extern int execlp  (const char *, const char *, ...)  ; 
extern int execvp  (const char *, char *const[])  ;
 

extern void _exit  (int )  ;
extern pid_t fork  (void)  ;
extern long fpathconf  (int , int )  ;
extern int fsync  (int)  ;

extern int fdatasync  (int)  ;

extern char *getcwd  (char *, size_t )  ;
extern gid_t getegid  (void)  ;
extern uid_t geteuid  (void)  ;
extern gid_t getgid  (void)  ;


 
extern int getgroups  (int , gid_t [])  ;

extern char *getlogin  (void)  ;
extern pid_t getpgrp  (void)  ;
extern pid_t getpid  (void)  ;
extern pid_t getppid  (void)  ;
extern uid_t getuid  (void)  ;
extern int isatty  (int )  ;
extern int link  (const char *, const char *)  ;
extern off_t lseek  (int , off_t , int )  ;
extern long pathconf  (const char *, int )  ;
extern int pause  (void)  ;


 









extern int  pipe    (int [])  ;







extern int rmdir  (const char *)  ;
extern int setgid  (gid_t )  ;
extern int setpgid  (pid_t , pid_t )  ;
extern pid_t setsid  (void)  ;
extern int setuid  (uid_t )  ;
extern unsigned int sleep  (unsigned int )  ;











extern long sysconf  (int )  ;
extern pid_t tcgetpgrp  (int )  ;
extern int tcsetpgrp  (int , pid_t )  ;
extern char *ttyname  (int )  ;
extern int unlink  (const char *)  ;

extern void swab  (const void *, void *, ssize_t)  ;


 










extern int _Pgetlogin_r    (char *, size_t)  ;	 
extern int _Pttyname_r    (int, char *, size_t)  ;	 






# 220 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/unistd.h" 3











 











































 


















 







 



























 







 









 

























 




 

























































 














 























 






 


















extern int  fchown  (int, uid_t, gid_t)  ;
extern int  ftruncate  (int, off_t)  ;





extern int  readlink  (const char *, char *, int)  ;

extern int  symlink  (const char *, const char *)  ;

extern int  setgroups  (int, gid_t [])  ;

extern int  truncate  (const char *, off_t)  ;





extern char *crypt  (const char *, const char *)  ;
extern char *cuserid  (char *)  ;
extern char *ctermid  (char *)  ;
extern void encrypt  (char [], int)  ;
extern char *getpass  (const char *)  ;
extern int  nice  (int)  ;





 









extern int  brk  (char *)  ;
extern int  gethostname  (char *, int)  ;

extern int  getpagesize  (void)  ;
extern pid_t getpgid  (pid_t)  ;
extern pid_t getsid  (pid_t)  ;
extern char *getwd  (char *)  ;
extern int lchown  (const char *, uid_t, gid_t)  ;
extern int lockf  (int, int, off_t)  ;




extern void *sbrk  (ssize_t)  ;
extern unsigned int ualarm  (unsigned int, unsigned int)  ;

extern void sync  (void)  ;
# 577 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/unistd.h" 3

extern int setpgrp  (pid_t, pid_t)  ;


extern int  setregid  (gid_t, gid_t)  ;
extern int  setreuid  (uid_t, uid_t)  ;
extern pid_t vfork  (void)  ;
extern int  getdtablesize  (void)  ;


extern char *gettxt  (const char *, const char *)  ;
extern char *getenv  (const char *)  ;
extern int rename  (const char *, const char *)  ;
extern int rresvport  (int *)  ;
extern int rresvport2  (int *, int)  ;
extern int  seteuid  (uid_t)  ;
extern int  setegid  (gid_t)  ;
extern int  setlogin  (char *)  ;
extern int  setrgid  (gid_t)  ;
extern int  setruid  (uid_t)  ;



	




# 45 "../tack/tack.h" 2

# 1 "/usr/include/ctype.h" 1 3
 





















 


 

 
 



 


 





































 




extern int	isalpha  (int)  ;
extern int	isalnum  (int)  ;
extern int	iscntrl  (int)  ;
extern int	isdigit  (int)  ;
extern int	isgraph  (int)  ;
extern int	islower  (int)  ;
extern int	isprint  (int)  ;
extern int	ispunct  (int)  ;
extern int	isspace  (int)  ;
extern int	isupper  (int)  ;
extern int	isxdigit  (int)  ;
extern int	toupper  (int)  ;
extern int	tolower  (int)  ;





extern int	isascii  (int)  ;
extern int	toascii  (int)  ;

extern int	(_toupper)  (int)  ;
extern int	(_tolower)  (int)  ;









# 1 "/usr/include/sys/localedef.h" 1 3
 





















 


 


 



 


 

















 





 





 



typedef struct _LC_charmap_t 	_LC_charmap_t;
typedef struct _LC_monetary_t 	_LC_monetary_t;
typedef struct _LC_numeric_t	_LC_numeric_t;
typedef struct _LC_resp_t	_LC_resp_t;
typedef struct _LC_time_t	_LC_time_t;
typedef struct _LC_collate_t	_LC_collate_t;
typedef struct _LC_ctype_t	_LC_ctype_t;
typedef struct _LC_locale_t	_LC_locale_t;

# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/sys/lc_core.h" 1 3
 





















 


 


 



 


 



















# 1 "/usr/include/locale.h" 1 3
 





















 


 

 
 



 


 





















struct lconv {
   char *decimal_point;		 
   char *thousands_sep;		 
   char *grouping;		 
   char *int_curr_symbol;	 
   char *currency_symbol;	 
   char *mon_decimal_point;	 
   char *mon_thousands_sep;	 
   char *mon_grouping;		 
   char *positive_sign;		 
   char *negative_sign;		 
   char int_frac_digits;	 
   char frac_digits;		 
   char p_cs_precedes;		 
   char p_sep_by_space;		 
   char n_cs_precedes;		 
   char n_sep_by_space;		 
   char p_sign_posn;		 
   char n_sign_posn;		 

   char *left_parenthesis;	 
   char *right_parenthesis;	 





};





















struct lconv *localeconv  (void)  ;
char   *setlocale  (int, const char *)  ;





# 56 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/sys/lc_core.h" 2 3


 
 

# 1 "/usr/include/nl_types.h" 1 3
 





















 


 

 
 



 


 





















typedef int __nl_item;


typedef struct __catalog_descriptor *nl_catd;



typedef __nl_item nl_item;




extern nl_catd catopen  (const char *, int )  ;
extern char  *catgets  (nl_catd , int , int , const char *)  ;
extern int catclose  (nl_catd )  ;



typedef struct __catalog_descriptor CATD;

extern nl_catd NLcatopen  (char *, int)  ;
extern char *NLgetamsg  (char *, int, int, char *)  ;
extern char *NLcatgets  (nl_catd, int, int, const char *)  ;

# 1 "/usr/include/mesg.h" 1 3
 





















 


 



 

 
 

 



















# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdio.h" 1 3

# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdarg.h" 1 3
 


































# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/va-alpha.h" 1 3
 

 




 




 





typedef struct {
  char *__base;			 
  int __offset;			 
} __gnuc_va_list;




 


# 132 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/va-alpha.h" 3

# 36 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdarg.h" 2 3

# 133 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdarg.h" 3









# 209 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdarg.h" 3




# 2 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdio.h" 2 3

 





















 


 

 
 



 


 









                                                                   






 










 


















 








 










 















typedef struct {
	int	_cnt;
	unsigned int	_flag2;
	unsigned char	*_ptr;
	unsigned char	*_base;
	int	_bufsiz;
	short	_flag;
	short	_file;




	char	*__newbase;
	void	*_lock;			 
	unsigned char	*_bufendp;
} FILE;

extern FILE	_iob[];












 
extern size_t	fread  (void *, size_t, size_t, FILE *)  ;
extern size_t	fwrite  (const void *, size_t, size_t, FILE *)  ;
 


 
extern int	_flsbuf  (int, FILE *)  ;
extern int	_filbuf  (FILE *)  ;
extern int 	ferror  (FILE *)  ;
extern int 	feof  (FILE *)  ;
extern void 	clearerr  (FILE *)  ;
extern int 	putchar  (int)  ;
extern int 	getchar  (void)  ;
extern int 	putc  (int, FILE *)  ;
extern int 	getc  (FILE *)  ;
extern int	remove  (const char *)  ;
extern int	rename  (const char *, const char *)  ;
extern FILE 	*tmpfile  (void)  ;
extern char 	*tmpnam  (char *)  ;
extern int 	fclose  (FILE *)  ;
extern int 	fflush  (FILE *)  ;
extern FILE	*fopen  (const char *, const char *)  ;
extern FILE 	*freopen  (const char *, const char *, FILE *)  ;
extern void 	setbuf  (FILE *, char *)  ;
extern int 	setvbuf  (FILE *, char *, int, size_t)  ;
extern int	fprintf  (FILE *, const char *, ...)  ;
extern int	fscanf  (FILE *, const char *, ...)  ;
extern int	printf  (const char *, ...)  ;
extern int	scanf  (const char *, ...)  ;
extern int	sprintf  (char *, const char *, ...)  ;
extern int	sscanf  (const char *, const char *, ...)  ;








# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/va_list.h" 1 3
 



# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/va-alpha.h" 1 3
 

 




 

# 25 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/va-alpha.h" 3


 


# 132 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/va-alpha.h" 3

# 5 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/va_list.h" 2 3




typedef __gnuc_va_list va_list;











# 191 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdio.h" 2 3

extern int  vfprintf  (FILE *, const char *, __gnuc_va_list)  ;
extern int  vprintf  (const char *, __gnuc_va_list)  ;
extern int  vsprintf  (char *, const char *, __gnuc_va_list)  ;
# 203 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdio.h" 3



extern int 	fgetc  (FILE *)  ;
extern char 	*fgets  (char *, int, FILE *)  ;
extern int 	fputc  (int, FILE *)  ;
extern int 	fputs  (const char *, FILE *)  ;
extern char 	*gets  (char *)  ;
extern int 	puts  (const char *)  ;
extern int	ungetc  (int, FILE *)  ;
extern int	fgetpos  (FILE *, fpos_t *)  ;
extern int 	fseek  (FILE *, long, int)  ;
extern int	fsetpos  (FILE *, const fpos_t *)  ;
extern long	ftell  (FILE *)  ;
extern void	rewind  (FILE *)  ;
extern void 	perror  (const char *)  ;










 













 

# 284 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdio.h" 3


# 337 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdio.h" 3















 














 
extern int 	fileno  (FILE *)  ;
extern FILE 	*fdopen  (int, const char *)  ;




extern char *cuserid  (char *)  ;
 













 

 



 
extern char	*ctermid  (char *)  ;
extern int 	getw  (FILE *)  ;
extern int 	pclose  (FILE *)  ;
extern int 	putw  (int, FILE*)  ;
extern FILE 	*popen  (const char *, const char *)  ;
extern char 	*tempnam  (const char*, const char*)  ;
 






# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/sys/limits.h" 1 3
 





















 


 

 
 



 


 
















 









                                                                   





 










# 1 "/usr/include/machine/machlimits.h" 1 3
 





















 


 

 
 



 


 


 

































					 



					 







 



# 80 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/sys/limits.h" 2 3





 










 















 










 













 



# 1 "/usr/include/sys/syslimits.h" 1 3
 





















 


 

 
 

 



 


 











































# 141 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/sys/limits.h" 2 3








 

















 







					 
 





























































# 1 "/usr/include/machine/machtime.h" 1 3
 





















 


 

 
 





















 



 


 



 









# 238 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/sys/limits.h" 2 3












 




# 1 "/usr/include/sys/rt_limits.h" 1 3
 





















 


 


 















































# 255 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/sys/limits.h" 2 3




 









 


# 409 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdio.h" 2 3


 









 


















 
extern void 	setbuffer  (FILE *, char*, int)  ;
extern void 	setlinebuf  (FILE *)  ;
 



# 488 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdio.h" 3





# 55 "/usr/include/mesg.h" 2 3

# 1 "/usr/include/nl_types.h" 1 3
 





















 


 

 
 



 


 













# 88 "/usr/include/nl_types.h" 3

# 56 "/usr/include/mesg.h" 2 3

# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/limits.h" 1 3
 


 





 
# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/syslimits.h" 1 3
 





















 


 

 
 



 


 
















 









                                                                   

# 271 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/syslimits.h" 3

# 11 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/limits.h" 2 3



# 109 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/limits.h" 3


 









# 57 "/usr/include/mesg.h" 2 3







struct _message {
	unsigned short 	_set,
			_msg;
	char 		*_text;
	unsigned	_old;
};

struct _header {
	int 		_magic;
	unsigned short	_n_sets,
			_setmax;
	char		_filler[20];
};
struct _msgptr {
	unsigned short 	_msgno,
			_msglen;
	unsigned int	_offset;
};

struct _catset {
	unsigned short 	_setno,
			_n_msgs;
	struct _msgptr 	*_mp;
	int		_msgs_expanded;
};


struct __catalog_descriptor {
	char		*_mem;
	char		*_name;
	int 		_fd;		 
	struct _header 	*_hd;
	int		_catlen;	 
	struct _catset 	*_set;
	int		_setmax;	 
	int		_count;
	int		_magic;		 
	char		*_lc_message;
	char		*_nlspath;
	int		_n_sets;	 
	int		_sets_expanded;
};


 

extern struct _catset *__cat_get_catset(nl_catd, int);

extern struct _msgptr *__cat_get_msgptr(struct _catset *, int);
 


# 82 "/usr/include/nl_types.h" 2 3







# 61 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/sys/lc_core.h" 2 3







 



 


typedef enum __lc_type_id_t {
    _LC_CAR=1,
    _LC_LOCALE=2,
    _LC_CHARMAP=3,
    _LC_CTYPE=4,
    _LC_COLLATE=5,
    _LC_NUMERIC=6,
    _LC_MONETARY=7,
    _LC_TIME=8,
    _LC_RESP=9 } __lc_type_id_t;

 



typedef struct {
    __lc_type_id_t
	type_id;
    unsigned short
	magic;
    unsigned short
	format;
    unsigned long
	version;
    
    unsigned long  size;

} _LC_object_t;


 
struct _LC_charmap_t;
struct _LC_ctype_t;
struct _LC_collate_t;
struct _LC_time_t;
struct _LC_monetary_t;
struct _LC_numeric_t;
struct _LC_resp_t;
struct _LC_locale_t;

 




 






typedef struct {

    _LC_object_t  hdr;

     
    char     *(*nl_langinfo)  (__nl_item, struct _LC_charmap_t *)  ;
    
     
    int   (*mbtowc)  (wchar_t *, const char *, size_t, struct _LC_charmap_t *)  ;
    size_t   (*mbstowcs)  (wchar_t *, const char *, size_t, struct _LC_charmap_t *)  ;
    int      (*wctomb)  (char *, wchar_t, struct _LC_charmap_t *)  ;
    size_t   (*wcstombs)  (char *, const wchar_t *, size_t, struct _LC_charmap_t *)  ;
    
     
    int      (*mblen)  (const char *, size_t, struct _LC_charmap_t *)  ;
    
     
    int   (*wcswidth)  (const wchar_t *, size_t, struct _LC_charmap_t *)  ;
    int   (*wcwidth)  (const wchar_t, struct _LC_charmap_t *)  ;
    
     
    int      (*__mbtopc)  (wchar_t *, char *, size_t, int *, struct _LC_charmap_t *)  ;
    int      (*__mbstopcs)  (wchar_t *, size_t, char *, size_t, int, char **, int *, struct _LC_charmap_t *)  ;
    int      (*__pctomb)  (char *, wchar_t *, size_t, int *, struct _LC_charmap_t *)  ;
    int      (*__pcstombs)  (char *, size_t, wchar_t *, size_t, char **, int *, struct _LC_charmap_t *)  ;
    
     
    struct _LC_charmap_t *(*init)  (struct _LC_locale_t *)  ;
    void     *data;
} _LC_core_charmap_t;


typedef struct {
 
    _LC_object_t  hdr; 
    
     
    wint_t  (*towupper)  (wint_t, struct _LC_ctype_t *)  ;
    wint_t  (*towlower)  (wint_t, struct _LC_ctype_t *)  ;
    
     
    wctype_t    (*wctype)  (char *, struct _LC_ctype_t *)  ;
    int      (*iswctype)  (wint_t, wctype_t, struct _LC_ctype_t *)  ;
    
     
    struct _LC_ctype_t   *(*init)  (struct _LC_locale_t *)  ;
    void     *data;
} _LC_core_ctype_t;


 










typedef struct {

    _LC_object_t  hdr;

     
    int      (*strcoll)  (const char *, const char *, struct _LC_collate_t *)  ;
    size_t   (*strxfrm)  (char *, const char *, size_t, struct _LC_collate_t *)  ;
    
     
    int      (*wcscoll)  (const wchar_t *, const wchar_t *, struct _LC_collate_t *)  ;
    size_t   (*wcsxfrm)  (wchar_t *, const wchar_t *, size_t, struct _LC_collate_t *)  ;
    
     
    int      (*fnmatch)  (const char *, const char *, const char *, int, struct _LC_collate_t *)  ;
    
     
    int      (*regcomp) () ;
    size_t   (*regerror) () ;
    int      (*regexec) () ;
    void     (*regfree) () ;

     
    struct _LC_collate_t *(*init)  (struct _LC_locale_t *)  ;
    void     *data;
} _LC_core_collate_t;


struct tm;
typedef struct {

    _LC_object_t  hdr;
    
     
    char     *(*nl_langinfo)  (__nl_item, struct _LC_time_t *)  ;
    
     
    size_t   (*strftime)  (char *, size_t, const char *, const struct tm *, struct _LC_time_t *)  ;
    char     *(*strptime)  (const char *, const char *, struct tm *, struct _LC_time_t *)  ;
    
     
    size_t   (*wcsftime)  (wchar_t *, size_t, const char *, const struct tm *, struct _LC_time_t *)  ;
    
     
    struct _LC_time_t    *(*init)  (struct _LC_locale_t *)  ;
    void     *data;
} _LC_core_time_t;


typedef struct {

    _LC_object_t  hdr;

     
    char     *(*nl_langinfo)  (__nl_item, struct _LC_monetary_t *)  ;
    
     
    ssize_t   (*strfmon)  (char *, size_t, const char *, va_list, struct _LC_monetary_t *)  ;
    
     
    struct _LC_monetary_t        *(*init)  (struct _LC_locale_t *)  ;
    void     *data;
} _LC_core_monetary_t;


typedef struct {

    _LC_object_t  hdr;

     
    char     *(*nl_langinfo)  (__nl_item, struct _LC_numeric_t *)  ;
    
     
    struct _LC_numeric_t *(*init)  (struct _LC_locale_t *)  ;
    void     *data;
} _LC_core_numeric_t;


typedef struct {

    _LC_object_t  hdr;
    
     
    char        *(*nl_langinfo)  (__nl_item, struct _LC_resp_t *)  ;
    
     
    int		(*rpmatch)  (const char *, struct _LC_resp_t *)  ;
    
     
    struct _LC_resp_t    *(*init)  (struct _LC_locale_t *)  ;
    void        *data;
} _LC_core_resp_t;

typedef struct {

    _LC_object_t hdr;

     
    char         *(*nl_langinfo)  (__nl_item, struct _LC_locale_t *)  ;
    struct lconv * (*localeconv)  (struct _LC_locale_t *)  ;
    
     
    struct _LC_locale_t  *(*init)  (struct _LC_locale_t *)  ;
    void         *data;
} _LC_core_locale_t;





# 79 "/usr/include/sys/localedef.h" 2 3















 




struct _LC_charmap_t {

    _LC_core_charmap_t core;
    
    char     *cm_csname;	 
    
    unsigned long   cm_mb_cur_max;  
    unsigned long   cm_mb_cur_min;  

    unsigned char
	     cm_max_disp_width;  
				 





};


 




struct _LC_monetary_t {

    _LC_core_monetary_t   core;
    
    char *int_curr_symbol;	    
    char *currency_symbol;	    
    char *mon_decimal_point;	    
    char *mon_thousands_sep;	    
    char *mon_grouping;		    
    char *positive_sign;	    
    char *negative_sign;	    
    signed  char int_frac_digits;    
    signed  char frac_digits;	    
    signed  char p_cs_precedes;	    
    signed  char p_sep_by_space;	    
    signed  char n_cs_precedes;	    
    signed  char n_sep_by_space;	    
    signed  char p_sign_posn;	    
    signed  char n_sign_posn;	    
    char *debit_sign;		    
    char *credit_sign;		    
    char *left_parenthesis;	    
    char *right_parenthesis;	    
    
};


 




struct _LC_numeric_t {

    _LC_core_numeric_t core;
    
    char     *decimal_point;
    char     *thousands_sep;
    unsigned
	char *grouping;
    
};


 




struct _LC_resp_t  {

    _LC_core_resp_t core;

    char    *yesexpr;	      
    char    *noexpr;	      
    char    *yesstr;	      
    char    *nostr;	      

};


 




struct _LC_time_t {

    _LC_core_time_t core;
    
    char *d_fmt;  
    char *t_fmt;  
    char *d_t_fmt;
    char *t_fmt_ampm;
    char *abday[7];  
    char *day[7];    
    char *abmon[12];  
    char *mon[12];    
    char *am_pm[2];
    char **era;			 
    char *era_year;
    char *era_d_fmt;
    char *alt_digits;
    char *m_d_recent;		 
    char *m_d_old;		 
    char *era_d_t_fmt;
    char *era_t_fmt;
};


 






typedef union {
    unsigned int n[(sizeof(unsigned int *)/sizeof(unsigned int)) ];
    		        
    		        
             
    const  unsigned int       
	  *p;	        
} _LC_weight_t;    
  
 




typedef struct {

    const  char         *ce_sym;  
    _LC_weight_t ce_wgt;	 
				 
} _LC_collel_t;


 




typedef struct {
    _LC_weight_t   ct_wgt;     
			       

    const  _LC_collel_t   *ct_collel; 
} _LC_coltbl_v1_t;

 





 
typedef char _LC_strpool_t, *_LC_strpool_ptr_t;

 








typedef struct {
	int          strpool_idx;
	unsigned int ce_wgt[1];
} _LC_collel_tbl_v2_t;

 



typedef _LC_collel_tbl_v2_t  _LC_collel_tbl_t;

 








typedef struct {
	unsigned int min;
	unsigned int max;
	unsigned int *tbl;
} _LC_collel_qidx_v2_t;

 




typedef _LC_collel_qidx_v2_t _LC_collel_qidx_t;

 




typedef struct {
        unsigned int         ce_tbl_bsize;     
	unsigned int         ce_tbl_cnt;       
	unsigned int         ce_strpool_cnt;   
	unsigned int         version_mask;     
	_LC_strpool_t        *ce_strpool;      
	_LC_collel_tbl_t     *ce_tbl;          
	_LC_collel_qidx_t    *ce_qidx;         
	unsigned int         *ct_wgt[1];       
} _LC_coltbl_v2_t;

 



typedef struct {
  int (*getcolval)  (_LC_collate_t *hdl, unsigned int *colval, unsigned int realwc, const char *str, int order)  ;
} _LC_coll_methods_t;

 








typedef union {
  _LC_coltbl_v1_t  ct_v1;
  _LC_coltbl_v2_t  ct_v2;
} _LC_coltbl_t;


 



typedef struct {

    _LC_weight_t ss_act;	 
				 
    const  char *ss_src;	 
    const  char *ss_tgt;	 

} _LC_subs_t;


 








struct _LC_collate_t {

    _LC_core_collate_t core;
    
    unsigned			             
	char    co_nord;	             
    
    unsigned			             
	char    version;	             
                                             
    
    unsigned			             
	char    ce_defined;	             
    
    _LC_weight_t co_sort;	             
					     
    
    unsigned int     co_wc_min;		     
    unsigned int     co_wc_max;		     
    unsigned int     co_hbound;		     

    unsigned int     co_col_min;	     
    unsigned int     co_col_max;	     

    const  _LC_coltbl_t *co_coltbl; 	     
				             
    unsigned
	char    co_nsubs;		     
    const  _LC_subs_t         *co_subs;      
    const  _LC_coll_methods_t *methods;      
};

 







  
 




  
 



typedef struct {

    char    *name;
    unsigned
	int mask;

} _LC_classnm_t;


 




struct _LC_ctype_t {

  _LC_core_ctype_t core;

   
  unsigned int      min_wc;
  unsigned int      max_wc;

  unsigned int      max_upper;	 
  unsigned int      max_lower;	 

   
  const  unsigned int      *_upper;	 
  const  unsigned int      *_lower;	 
  
   
  const  unsigned
      int      *_mask;        
  const  unsigned
      int      *qmask;	      
  const  unsigned
      char     *qidx;	      

  unsigned int	qidx_hbound;	 
   
  unsigned
      char     nclasses;
 const  _LC_classnm_t *classnms;
  
  unsigned int	num_rows;    
  unsigned int	num_qmasks;  
};

 



















 





 





 









 




struct _LC_locale_t {

    _LC_core_locale_t core;
    char           *nl_info[55 ];     
					       
    struct lconv   *nl_lconv;
    
    _LC_charmap_t  *lc_charmap;
    _LC_collate_t  *lc_collate;
    _LC_ctype_t    *lc_ctype;
    _LC_monetary_t *lc_monetary;
    _LC_numeric_t  *lc_numeric;
    _LC_resp_t     *lc_resp;
    _LC_time_t     *lc_time;
    char	   *nl_info2[61  - 55 ];
};




extern _LC_charmap_t  *__lc_charmap;
extern _LC_collate_t  *__lc_collate;
extern _LC_ctype_t    *__lc_ctype;
extern _LC_monetary_t *__lc_monetary;
extern _LC_numeric_t  *__lc_numeric;
extern _LC_resp_t     *__lc_resp;
extern _LC_time_t     *__lc_time;
extern _LC_locale_t   *__lc_locale;



































# 111 "/usr/include/ctype.h" 2 3































# 46 "../tack/tack.h" 2

# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/string.h" 1 3
 





















 


 

 
 

 



 




 

















 









 





















extern void	*memchr  (const void *, int , size_t )  ;
extern void	*memcpy  (void *, const void *, size_t )  ;
extern void	*memset  (void *, int , size_t )  ;
extern size_t 	strcspn  (const char *, const char *)  ;
extern size_t	strlen  (const char *)  ;
extern size_t	strspn  (const char *, const char *)  ;



extern void 	*memmove  (void *, const void *, size_t )  ;
extern char 	*strcpy  (char *, const char *)  ;
extern char 	*strncpy  (char *, const char *, size_t )  ;
extern char 	*strcat  (char *, const char *)  ;
extern char	*strncat  (char *, const char *, size_t )  ;
extern int 	memcmp  (const void *, const void *,size_t )  ;
extern int	strcmp  (const char *, const char *)  ;
extern int	strcoll  (const char *, const char *)  ;
extern int	strncmp  (const char *,const char *,size_t )  ;
extern size_t 	strxfrm  (char *, const char *, size_t )  ;
extern char	*strchr  (const char *, int )  ;
extern char	*strpbrk  (const char *, const char *)  ;
extern char	*strrchr  (const char *, int )  ;
extern char	*strstr  (const char *, const char *)  ;
extern char 	*strtok  (char *, const char *)  ;
extern char 	*strerror  (int)  ;
















extern void	*memccpy  (void *, const void *, int , size_t )  ;








extern void swab  (const void *, void *, ssize_t)  ;





extern char *strdup  (const char *)  ;




 
 
# 1 "/usr/include/strings.h" 1 3
 





















 


 

 
 

 



 




 

 













 

























extern int  bcmp  (const char *, const char *, int)  ;
extern void bcopy  (const char *, char *, int)  ;
extern void  bzero  (char *, int)  ;


# 96 "/usr/include/strings.h" 3


extern int  ffs  (int)  ;
extern char *index  (const char*, int)  ;
extern char *rindex  (const char*, int)  ;
extern int  strcasecmp  (const char *, const char *)  ;
extern int  strncasecmp  (const char *, const char *, size_t )  ;




# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/string.h" 1 3
 





















 


 

 
 

 



 




 








# 187 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/string.h" 3

# 107 "/usr/include/strings.h" 2 3







# 153 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/string.h" 2 3


 








extern char    *  basename    (char  *)  ;
extern char    *  dirname    (char  *)  ;






# 180 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/string.h" 3








# 47 "../tack/tack.h" 2


# 1 "../include/curses.h" 1
 



























 




 







 





 




 




















typedef unsigned long chtype;

# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdio.h" 1 3

# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdarg.h" 1 3
 


































# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/va-alpha.h" 1 3
 

 




 

# 25 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/va-alpha.h" 3


 


# 132 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/va-alpha.h" 3

# 36 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdarg.h" 2 3

# 133 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdarg.h" 3









# 209 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdarg.h" 3




# 2 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdio.h" 2 3

 





















 


 

 
 



 


 









                                                                   

# 490 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdio.h" 3



# 76 "../include/curses.h" 2

# 1 "../include/unctrl.h" 1
 



























 




 







 











# 1 "../include/curses.h" 1
 



























 




 

# 1369 "../include/curses.h"

# 54 "../include/unctrl.h" 2



extern   char *unctrl(chtype);






# 77 "../include/curses.h" 2

# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdarg.h" 1 3
 


































# 1 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/va-alpha.h" 1 3
 

 




 

# 25 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/va-alpha.h" 3


 














# 53 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/va-alpha.h" 3


 

 
















 

enum {
  __no_type_class = -1,
  __void_type_class,
  __integer_type_class,
  __char_type_class,
  __enumeral_type_class,
  __boolean_type_class,
  __pointer_type_class,
  __reference_type_class,
  __offset_type_class,
  __real_type_class,
  __complex_type_class,
  __function_type_class,
  __method_type_class,
  __record_type_class,
  __union_type_class,
  __array_type_class,
  __string_type_class,
  __set_type_class,
  __file_type_class,
  __lang_type_class
};

 


 




 





















 



# 36 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdarg.h" 2 3

# 133 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdarg.h" 3










 
 













# 175 "/usr/local/lib/gcc-lib/alpha-dec-osf4.0e/2.95.2/include/stdarg.h" 3


 




 

 




























# 78 "../include/curses.h" 2





 












typedef unsigned long bool;






 





















 
extern int COLORS;
extern int COLOR_PAIRS;










 

extern	chtype acs_map[];

 


















 







 












 

























 








 





 





typedef struct screen  SCREEN;
typedef struct _win_st WINDOW;

typedef	chtype	attr_t;		 

# 249 "../include/curses.h"


struct ldat
{
	chtype  *text;		 
	short  firstchar;  
	short  lastchar;  
	short  oldindex;  
};

struct _win_st
{
	short  _cury, _curx;  

	 
	short  _maxy, _maxx;  
	short  _begy, _begx;  

	short   _flags;		 

	 
	attr_t  _attrs;		 
	chtype  _bkgd;		 

	 
	bool	_notimeout;	 
	bool    _clear;		 
	bool    _leaveok;	 
	bool    _scroll;	 
	bool    _idlok;		 
	bool    _idcok;		 
	bool	_immed;		 
	bool	_sync;		 
	bool    _use_keypad;     
	int	_delay;		 

	struct ldat *_line;	 

	 
	short  _regtop;	 
	short  _regbottom;  

	 
	int	_parx;		 
	int	_pary;		 
	WINDOW	*_parent;	 

	 
	struct pdat
	{
	    short  _pad_y,      _pad_x;
	    short  _pad_top,    _pad_left;
	    short  _pad_bottom, _pad_right;
	} _pad;

	short  _yoffset;  
};

extern WINDOW   *stdscr;
extern WINDOW   *curscr;
extern WINDOW   *newscr;

extern int	LINES;
extern int	COLS;
extern int	TABSIZE;

 


extern int ESCDELAY;	 

extern char ttytype[];		 

 


extern char *keybound (int, int);
extern const char *curses_version (void);
extern int assume_default_colors (int, int);
extern int define_key (char *, int);
extern int keyok (int, bool);
extern int resizeterm (int, int);
extern int use_default_colors (void);
extern int use_extended_names (bool);
extern int wresize (WINDOW *, int, int);

 









 










 























 






extern int addch(const chtype);				 
extern int addchnstr(const chtype *, int);		 
extern int addchstr(const chtype *);			 
extern int addnstr(const char *, int);			 
extern int addstr(const char *);			 







extern int attroff(int );			 
extern int attron(int );			 
extern int attrset(int );			 
extern int attr_get(attr_t *, short *, void *);		 
extern int attr_off(attr_t, void *);			 
extern int attr_on(attr_t, void *);			 
extern int attr_set(attr_t, short, void *);		 
extern int baudrate(void);				 
extern int beep(void);					 
extern int bkgd(chtype);				 
extern void bkgdset(chtype);				 




extern int border(chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype);	 



extern int box(WINDOW *, chtype, chtype);		 



extern bool can_change_color(void);			 
extern int cbreak(void);				 
extern int chgat(int, attr_t, short, const void *);	 
extern int clear(void);					 
extern int clearok(WINDOW *,bool);			 
extern int clrtobot(void);				 
extern int clrtoeol(void);				 
extern int color_content(short,short*,short*,short*);	 
extern int color_set(short,void*);			 
extern int COLOR_PAIR(int);				 
extern int copywin(const WINDOW*,WINDOW*,int,int,int,int,int,int,int);	 
extern int curs_set(int);				 
extern int def_prog_mode(void);				 
extern int def_shell_mode(void);			 
extern int delay_output(int);				 
extern int delch(void);					 
extern void delscreen(SCREEN *);			 
extern int delwin(WINDOW *);				 
extern int deleteln(void);				 
extern WINDOW *derwin(WINDOW *,int,int,int,int);	 
extern int doupdate(void);				 
extern WINDOW *dupwin(WINDOW *);			 
extern int echo(void);					 
extern int echochar(const chtype);			 
extern int erase(void);					 




extern int endwin(void);				 
extern char erasechar(void);				 
extern void filter(void);				 
extern int flash(void);					 
extern int flushinp(void);				 
extern chtype getbkgd(WINDOW *);			 




extern int getch(void);					 
extern int getnstr(char *, int);			 



extern int getstr(char *);				 



extern WINDOW *getwin(FILE *);				 



extern int halfdelay(int);				 
extern bool has_colors(void);				 
extern bool has_ic(void);				 
extern bool has_il(void);				 
extern int hline(chtype, int);				 



extern void idcok(WINDOW *, bool);			 
extern int idlok(WINDOW *, bool);			 
extern void immedok(WINDOW *, bool);			 
extern chtype inch(void);				 
extern int inchnstr(chtype *, int);			 
extern int inchstr(chtype *);				 
extern WINDOW *initscr(void);				 
extern int init_color(short,short,short,short);		 
extern int init_pair(short,short,short);		 
extern int innstr(char *, int);				 



extern int insch(chtype);				 
extern int insdelln(int);				 
extern int insertln(void);				 
extern int insnstr(const char *, int);			 
extern int insstr(const char *);			 
extern int instr(char *);				 





extern int intrflush(WINDOW *,bool);			 






extern bool isendwin(void);				 
extern bool is_linetouched(WINDOW *,int);		 
extern bool is_wintouched(WINDOW *);			 
extern   char *keyname(int);		 



extern int keypad(WINDOW *,bool);			 
extern char killchar(void);				 



extern int leaveok(WINDOW *,bool);			 
extern char *longname(void);				 
extern int meta(WINDOW *,bool);				 
extern int move(int, int);				 
extern int mvaddch(int, int, const chtype);		 
extern int mvaddchnstr(int, int, const chtype *, int);	 
extern int mvaddchstr(int, int, const chtype *);	 
extern int mvaddnstr(int, int, const char *, int);	 
extern int mvaddstr(int, int, const char *);		 







extern int mvchgat(int, int, int, attr_t, short, const void *);	 
extern int mvcur(int,int,int,int);			 
extern int mvdelch(int, int);				 
extern int mvderwin(WINDOW *, int, int);		 
extern int mvgetch(int, int);				 
extern int mvgetnstr(int, int, char *, int);		 



extern int mvgetstr(int, int, char *);			 






extern int mvhline(int, int, chtype, int);		 



extern chtype mvinch(int, int);				 
extern int mvinchnstr(int, int, chtype *, int);		 
extern int mvinchstr(int, int, chtype *);		 
extern int mvinnstr(int, int, char *, int);		 



extern int mvinsch(int, int, chtype);			 
extern int mvinsnstr(int, int, const char *, int);	 
extern int mvinsstr(int, int, const char *);		 
extern int mvinstr(int, int, char *);			 
# 580 "../include/curses.h"

extern int mvprintw(int,int,   char *,...)	 
		__attribute__((format(printf, 3 , 4 ))) ;
extern int mvscanw(int,int,   char *,...)	 
		__attribute__((format(scanf, 3 , 4 ))) ;
extern int mvvline(int, int, chtype, int);		 



extern int mvwaddch(WINDOW *, int, int, const chtype);	 
extern int mvwaddchnstr(WINDOW *, int, int, const chtype *, int); 
extern int mvwaddchstr(WINDOW *, int, int, const chtype *);	 
extern int mvwaddnstr(WINDOW *, int, int, const char *, int);	 
extern int mvwaddstr(WINDOW *, int, int, const char *);	 







extern int mvwchgat(WINDOW *, int, int, int, attr_t, short, const void *); 
extern int mvwdelch(WINDOW *, int, int);		 
extern int mvwgetch(WINDOW *, int, int);		 
extern int mvwgetnstr(WINDOW *, int, int, char *, int);	 



extern int mvwgetstr(WINDOW *, int, int, char *);	 






extern int mvwhline(WINDOW *, int, int, chtype, int);	 



extern int mvwin(WINDOW *,int,int);			 
extern chtype mvwinch(WINDOW *, int, int);			 
extern int mvwinchnstr(WINDOW *, int, int, chtype *, int);	 
extern int mvwinchstr(WINDOW *, int, int, chtype *);		 
extern int mvwinnstr(WINDOW *, int, int, char *, int);		 



extern int mvwinsch(WINDOW *, int, int, chtype);		 
extern int mvwinsnstr(WINDOW *, int, int, const char *, int);	 
extern int mvwinsstr(WINDOW *, int, int, const char *);		 
extern int mvwinstr(WINDOW *, int, int, char *);		 
# 639 "../include/curses.h"

extern int mvwprintw(WINDOW*,int,int,   char *,...)	 
		__attribute__((format(printf, 4 , 5 ))) ;
extern int mvwscanw(WINDOW *,int,int,   char *,...)	 
		__attribute__((format(scanf, 4 , 5 ))) ;
extern int mvwvline(WINDOW *,int, int, chtype, int);	 



extern int napms(int);					 
extern WINDOW *newpad(int,int);				 
extern SCREEN *newterm(  char *,FILE *,FILE *);	 
extern WINDOW *newwin(int,int,int,int);			 
extern int nl(void);					 
extern int nocbreak(void);				 
extern int nodelay(WINDOW *,bool);			 
extern int noecho(void);				 
extern int nonl(void);					 
extern void noqiflush(void);				 
extern int noraw(void);					 
extern int notimeout(WINDOW *,bool);			 
extern int overlay(const WINDOW*,WINDOW *);		 
extern int overwrite(const WINDOW*,WINDOW *);		 
extern int pair_content(short,short*,short*);		 
extern int PAIR_NUMBER(int);				 
extern int pechochar(WINDOW *, const chtype);		 



extern int pnoutrefresh(WINDOW*,int,int,int,int,int,int); 
extern int prefresh(WINDOW *,int,int,int,int,int,int);	 
extern int printw(  char *,...)		 
		__attribute__((format(printf, 1 , 2 ))) ;
extern int putp(const char *);				 
extern int putwin(WINDOW *, FILE *);			 
extern void qiflush(void);				 
extern int raw(void);					 
extern int redrawwin(WINDOW *);				 
extern int refresh(void);				 
extern int resetty(void);				 
extern int reset_prog_mode(void);			 
extern int reset_shell_mode(void);			 
extern int ripoffline(int, int (*init)(WINDOW *, int));	 
extern int savetty(void);				 
extern int scanw(  char *,...)		 
		__attribute__((format(scanf, 1 , 2 ))) ;
extern int scr_dump(const char *);			 
extern int scr_init(const char *);			 
extern int scrl(int);					 
extern int scroll(WINDOW *);				 
extern int scrollok(WINDOW *,bool);			 
extern int scr_restore(const char *);			 
extern int scr_set(const char *);			 



extern int setscrreg(int,int);				 
extern SCREEN *set_term(SCREEN *);			 
extern int slk_attroff(const chtype);			 
extern int slk_attr_off(const attr_t, void *);		 
extern int slk_attron(const chtype);			 
extern int slk_attr_on(attr_t,void*);			 
extern int slk_attrset(const chtype);			 
extern attr_t slk_attr(void);				 
extern int slk_attr_set(const attr_t,short,void*);	 
extern int slk_clear(void);				 
extern int slk_color(short);				 
extern int slk_init(int);				 
extern char *slk_label(int);				 
extern int slk_noutrefresh(void);			 
extern int slk_refresh(void);				 
extern int slk_restore(void);				 
extern int slk_set(int,const char *,int);		 
extern int slk_touch(void);				 



extern int standout(void);				 
extern int standend(void);				 
extern int start_color(void);				 
extern WINDOW *subpad(WINDOW *, int, int, int, int);	 
extern WINDOW *subwin(WINDOW *,int,int,int,int);	 
extern int syncok(WINDOW *, bool);			 
extern chtype termattrs(void);				 
extern attr_t term_attrs(void);				 
extern char *termname(void);				 
extern int tigetflag(  char *);		 
extern int tigetnum(  char *);		 
extern char *tigetstr(  char *);		 
extern void timeout(int);				 
extern int touchline(WINDOW *, int, int);		 
extern int touchwin(WINDOW *);				 
extern char *tparm(  char *, ...);		 
extern int typeahead(int);				 
extern int ungetch(int);				 



extern int untouchwin(WINDOW *);			 
extern void use_env(bool);				 
extern int vidattr(chtype);				 
extern int vid_attr(attr_t, short, void *);		 
extern int vidputs(chtype, int (*)(int));		 



extern int vline(chtype, int);				 



extern int vwprintw(WINDOW *,   char *,va_list);	 
extern int vw_printw(WINDOW *,   char *,va_list);	 
extern int vwscanw(WINDOW *,   char *,va_list);	 
extern int vw_scanw(WINDOW *,   char *,va_list);	 
extern int waddch(WINDOW *, const chtype);		 
extern int waddchnstr(WINDOW *,const chtype *const,int);  
extern int waddchstr(WINDOW *,const chtype *);		 
extern int waddnstr(WINDOW *,const char *const,int);	 
extern int waddstr(WINDOW *,const char *);		 







extern int wattron(WINDOW *, int);			 
extern int wattroff(WINDOW *, int);			 
extern int wattrset(WINDOW *, int);			 
extern int wattr_get(WINDOW *, attr_t *, short *, void *);	 
extern int wattr_on(WINDOW *,   attr_t, void *);	 
extern int wattr_off(WINDOW *,   attr_t, void *);	 
extern int wattr_set(WINDOW *, attr_t, short, void *);		 
extern int wbkgd(WINDOW *,const chtype);		 
extern void wbkgdset(WINDOW *,chtype);			 




extern int wborder(WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype);	 



extern int wchgat(WINDOW *, int, attr_t, short, const void *); 
extern int wclear(WINDOW *);				 
extern int wclrtobot(WINDOW *);				 
extern int wclrtoeol(WINDOW *);				 
extern int wcolor_set(WINDOW*,short,void*);		 
extern void wcursyncup(WINDOW *);			 
extern int wdelch(WINDOW *);				 
extern int wdeleteln(WINDOW *);				 
extern int wechochar(WINDOW *, const chtype);		 



extern int werase(WINDOW *);				 



extern int wgetch(WINDOW *);				 
extern int wgetnstr(WINDOW *,char *,int);		 



extern int wgetstr(WINDOW *, char *);			 




extern int whline(WINDOW *, chtype, int);		 



extern chtype winch(WINDOW *);				 
extern int winchnstr(WINDOW *, chtype *, int);		 
extern int winchstr(WINDOW *, chtype *);		 
extern int winnstr(WINDOW *, char *, int);		 



extern int winsch(WINDOW *, chtype);			 
extern int winsdelln(WINDOW *,int);			 
extern int winsertln(WINDOW *);				 
extern int winsnstr(WINDOW *, const char *,int);	 
extern int winsstr(WINDOW *, const char *);		 
extern int winstr(WINDOW *, char *);			 
# 833 "../include/curses.h"

extern int wmove(WINDOW *,int,int);			 
extern int wnoutrefresh(WINDOW *);			 
extern int wprintw(WINDOW *,   char *,...)	 
		__attribute__((format(printf, 2 , 3 ))) ;
extern int wredrawln(WINDOW *,int,int);			 
extern int wrefresh(WINDOW *);				 
extern int wscanw(WINDOW *,   char *,...)	 
		__attribute__((format(scanf, 2 , 3 ))) ;
extern int wscrl(WINDOW *,int);				 
extern int wsetscrreg(WINDOW *,int,int);		 
extern int wstandout(WINDOW *);				 
extern int wstandend(WINDOW *);				 
extern void wsyncdown(WINDOW *);			 
extern void wsyncup(WINDOW *);				 
extern void wtimeout(WINDOW *,int);			 
extern int wtouchln(WINDOW *,int,int,int);		 



extern int wvline(WINDOW *,chtype,int);			 




extern bool mouse_trafo(int*, int*, bool);               

 
















 










# 896 "../include/curses.h"





 

























 





































 











































 











































 


















































































 








 




































 
 
 
 


































































 


 






























 







typedef unsigned long mmask_t;

typedef struct
{
    short id;		 
    int x, y, z;	 
    mmask_t bstate;	 
}
MEVENT;

extern int getmouse(MEVENT *);
extern int ungetmouse(MEVENT *);
extern mmask_t mousemask(mmask_t, mmask_t *);
extern bool wenclose(const WINDOW *, int, int);
extern int mouseinterval(int);
extern bool wmouse_trafo(const WINDOW* win,int* y, int* x, bool to_screen);



 

extern int mcprint(char *, int);	 
extern int has_key(int);		 

 

extern void _tracef(const char *, ...) __attribute__((format(printf, 1 , 2 ))) ;
extern void _tracedump(const char *, WINDOW *);
extern char *_traceattr(attr_t);
extern char *_traceattr2(int, chtype);
extern char *_nc_tracebits(void);
extern char *_tracechar(const unsigned char);
extern char *_tracechtype(chtype);
extern char *_tracechtype2(int, chtype);
extern char *_tracemouse(const MEVENT *);
extern void trace(const unsigned int);

 

























# 1367 "../include/curses.h"



# 49 "../tack/tack.h" 2

# 1 "../include/term_entry.h" 1
 



























 




 

 










# 1 "../include/term.h" 1
 



























 
 
 
 

 

 













 






















 






 





# 1 "/usr/include/termios.h" 1 3
 





















 


 

 
 



 


 

















 



 










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


 

























 

























 



 


struct termios {
	tcflag_t	c_iflag;	 
	tcflag_t	c_oflag;	 
	tcflag_t	c_cflag;	 
	tcflag_t	c_lflag;	 
	cc_t		c_cc[20 ];	 
	int		c_ispeed;	 
	int		c_ospeed;	 
};







# 164 "/usr/include/termios.h" 3






extern speed_t cfgetospeed(const struct termios *);
extern int cfsetospeed(struct termios *, speed_t);
extern speed_t cfgetispeed(const struct termios *);
extern int cfsetispeed(struct termios *, speed_t);
extern int tcgetattr(int , struct termios *);



extern int tcsetattr(int , int , const struct termios *);
extern int tcsendbreak(int , int );
extern int tcdrain(int );
extern int tcflush(int , int );
extern int tcflow(int , int );






 
















					 








 

















































 


















 


































 






 





 







 






























 























 









# 1 "/usr/include/sys/ttydefaults.h" 1 3
 





















 


 

 
 

 



 


 







 






 
















 



























 





 


 


# 127 "/usr/include/sys/ttydefaults.h" 3

# 405 "/usr/include/termios.h" 2 3


# 86 "../include/term.h" 2



# 143 "../include/term.h"



































































































































































































































































































































































































































































































 




# 665 "../include/term.h"



 






 


typedef struct termtype {	 
    char  *term_names;		 
    char  *str_table;		 
    char  *Booleans;		 
    short *Numbers;		 
    char  **Strings;		 


    char  *ext_str_table;	 
    char  **ext_Names;		 

    unsigned short num_Booleans; 
    unsigned short num_Numbers;	 
    unsigned short num_Strings;	 

    unsigned short ext_Booleans; 
    unsigned short ext_Numbers;	 
    unsigned short ext_Strings;	 


} TERMTYPE;

typedef struct term {		 
    TERMTYPE	type;		 
    short 	Filedes;	 
    struct termios 		Ottyb,		 
		Nttyb;		 
    int		_baudrate;	 
} TERMINAL;

extern TERMINAL	*cur_term;

# 731 "../include/term.h"


extern   char *const boolnames[];
extern   char *const boolcodes[];
extern   char *const boolfnames[];
extern   char *const numnames[];
extern   char *const numcodes[];
extern   char *const numfnames[];
extern   char *const strnames[];
extern   char *const strcodes[];
extern   char *const strfnames[];



 
extern int _nc_set_tty_mode(struct termios  *buf);
extern int _nc_get_tty_mode(struct termios  *buf);
extern int _nc_read_entry(const char * const, char * const, TERMTYPE *const);
extern int _nc_read_file_entry(const char *const, TERMTYPE *);
extern char *_nc_first_name(const char *const);
extern int _nc_name_match(const char *const, const char *const, const char *const);
extern int _nc_read_termcap_entry(const char *const, TERMTYPE *const);
extern const TERMTYPE *_nc_fallback(const char *);

 
extern TERMINAL *set_curterm(TERMINAL *);
extern int del_curterm(TERMINAL *);

 
extern int restartterm(  char *, int, int *);
extern int setupterm(  char *,int,int *);

 









 

extern char *tgetstr(  char *, char **);
extern char *tgoto(const char *, int, int);
extern int tgetent(char *, const char *);
extern int tgetflag(  char *);
extern int tgetnum(  char *);
extern int tputs(const char *, int, int (*)(int));







# 47 "../include/term_entry.h" 2





typedef struct entry {
	TERMTYPE	tterm;
	int		nuses;
	struct
        {
	    char		*name;
	    struct entry	*link;
	    long	line;
        }
	uses[32 ];
	int		ncrosslinks;
	struct entry	*crosslinks[16 ];
	long		cstart, cend;
	long		startline;
	struct entry	*next;
	struct entry	*last;
}
ENTRY;























extern ENTRY	*_nc_head, *_nc_tail;






 

















 
extern ENTRY *_nc_copy_entry(ENTRY *oldp);
extern char *_nc_save_str(const char *const);
extern void _nc_init_entry(TERMTYPE *const);
extern void _nc_merge_entry(TERMTYPE *const, TERMTYPE *const);
extern void _nc_wrap_entry(ENTRY *const);

 
extern void _nc_align_termtype(TERMTYPE *, TERMTYPE *);
extern void _nc_copy_termtype(TERMTYPE *, TERMTYPE *);

 
extern void _nc_free_termtype(TERMTYPE *);

 
extern void _nc_init_acs(void);	 

 

extern bool _nc_user_definable;
extern bool _nc_disable_period;

extern int _nc_parse_entry(ENTRY *, int, bool);
extern int _nc_capcmp(const char *, const char *);

 
extern void _nc_set_writedir(char *);
extern void _nc_write_entry(TERMTYPE *const);

 
extern void _nc_read_entry_source(FILE*, char*, int, bool, bool (*)(ENTRY*));
extern bool _nc_entry_match(char *, char *);
extern int _nc_resolve_uses(bool);
extern void _nc_free_entries(ENTRY *);
extern void (*_nc_check_termtype)(TERMTYPE *);

 
extern void _nc_trace_xnames(TERMTYPE *);






# 50 "../tack/tack.h" 2













extern FILE *log_fp;
extern FILE *debug_fp;
extern int debug_level;
extern char temp[];
extern char tty_basename[];
extern char tty_shortname[];






extern int tty_can_sync;
extern int total_pads_sent;	 
extern int total_caps_sent;	 
extern int total_printing_characters;	 
extern int no_alarm_event;	 
extern int usec_run_time;	 
extern int raw_characters_sent;	 

 





 





extern char letters[26+1];



extern int test_complete;	 
extern char letter;
extern int letter_number;
extern int augment, repeats;
extern long char_sent;
extern const char *pad_repeat_test;	 

extern int replace_mode;
extern int char_count, line_count, expand_chars;
extern int can_go_home, can_clear_screen;

extern int translate_mode, scan_mode;
extern int auto_pad_mode;		 
extern int char_mask;
extern int hex_out;			 

 



 


extern int select_delay_type;

 


extern int select_xon_xoff;

extern int tty_frame_size;
extern unsigned long tty_baud_rate;
extern int tty_cps;		 
extern int not_a_tty, nodelay_read;
extern int send_reset_init;

 






 


 
struct default_string_list {
	const char *name;	 
	const char *value;	 
	int index;		 
};


extern struct default_string_list TM_string[8 ];

 
struct mode_list {
	const char *name;
	const char *begin_mode;
	const char *end_mode;
	int number;
};

extern const struct mode_list alt_modes[];
extern const int mode_map[];

 






 




extern int tt_delay_max;	 
extern int tt_delay_used;	 
extern const char *tt_cap[8 ];  
extern int tt_affected[8 ];	 

extern int tt_count[8 ];	 
extern int tt_delay[8 ];	 
extern int ttp;			 

extern const char *tx_cap[8 ];  
extern int tx_affected[8 ];	 

extern int tx_count[8 ];	 
extern int tx_delay[8 ];	 
extern int tx_index[8 ];	 
extern int txp;			 
extern int tx_characters;	 
extern int tx_cps;		 

 



struct test_results {
	struct test_results *next;	 
	struct test_list *test;	 
	int reps;		 
	int delay;		 
};

struct test_list {
	int flags;		 
	int lines_needed;	 
	const char *caps_done;	 
	const char *caps_tested;  
	const char *menu_entry;	 
				 
	void (*test_procedure)(struct test_list *, int *, int *);
	struct test_menu *sub_menu;	 
};

struct test_menu {
	int flags;		 
	int default_action;	 
	const char *menu_text;	 
	const char *menu_title;	 
	const char *ident;	 
	const char *standard_tests;	 
				 
	void (*menu_function)(struct test_menu *);
	struct test_list *tests;	 
	struct test_list *resume_tests;	 
	int resume_state;	 
	int resume_char;	 
};


 

































extern char prompt_string[80];	 
extern struct test_menu edit_menu;
extern struct test_list *augment_test;

 
extern void show_usage(char *);
extern void print_version(void);

 
extern void tt_tputs(const char *, int);
extern void tt_putp(const char *);
extern void tt_putparm(  char *, int, int, int);
extern int tc_putp(const char *);
extern int tc_putch(int);
extern void putchp(int);
extern void put_cr(void);
extern void put_crlf(void);
extern void put_clear(void);
extern void put_dec(char *, int);
extern void put_str(const char *);
extern void put_lf(void);
extern void put_ind(void);
extern void put_newlines(int);
extern void put_columns(const char *, int, int);
extern void put_this(int);
extern void putln(const char *);
extern void ptext(const char *);
extern void ptextln(const char *);
extern void home_down(void);
extern void go_home(void);
extern void three_digit(char *, int);
extern int getchp(int);
extern char *expand(const char *);
extern char *expand_to(char *, int);
extern char *expand_command(const char *);
extern char *hex_expand_to(char *, int);
extern char *print_expand(char *);
extern void maybe_wait(int);
extern int wait_here(void);
extern void read_string(char *, int);
extern int getnext(int);

 
extern void event_start(int);
extern long event_time(int);
extern char *liberated(char *);
extern void page_loop(void);
extern void control_init(void);
extern int msec_cost(const char *const, int);
extern int skip_pad_test(struct test_list *, int *, int *, const char *);
extern void pad_test_startup(int);
extern int still_testing(void);
extern void pad_test_shutdown(struct test_list *, int);
extern void dump_test_stats(struct test_list *, int *, int *);
extern void longer_test_time(struct test_list *, int *, int *);
extern void shorter_test_time(struct test_list *, int *, int *);
extern char txt_longer_test_time[80];
extern char txt_shorter_test_time[80];
extern void set_augment_txt(void);
extern void longer_augment(struct test_list *, int *, int *);
extern void shorter_augment(struct test_list *, int *, int *);
extern char txt_longer_augment[80];
extern char txt_shorter_augment[80];
extern int sliding_scale(int, int, int);

 
extern void verify_time(void);
extern int tty_sync_error(void);
extern void flush_input(void);
extern void sync_test(struct test_menu *);
extern void sync_handshake(struct test_list *, int *, int *);

 
extern void set_attr(int);
extern void eat_cookie(void);
extern void put_mode(char *);

 
extern void reset_init(void);
extern void display_basic(void);
extern void put_name(const char *, const char *);
extern void charset_can_test(void);
extern void curses_setup(char *);
extern void bye_kids(int);

 
extern int scan_key(void);
extern void scan_init(char *fn);

 
extern void tools_status(struct test_list *, int *, int *);
extern void tools_charset(struct test_list *, int *, int *);
extern void tools_sgr(struct test_list *, int *, int *);

 

 
extern void enter_key(const char *, char *, char *);
extern int tty_meta_prep(void);
extern void tools_report(struct test_list *, int *, int *);

 
extern void tty_set(void);
extern void tty_raw(int, int);
extern void tty_init(void);
extern void tty_reset(void);
extern void spin_flush(void);
extern void read_key(char *, int);
extern void set_alarm_clock(int);
extern void ignoresig(void);
extern int stty_query(int);
extern int initial_stty_query(int);

 
extern int user_modified(void);
extern void save_info(struct test_list *, int *, int *);
extern void can_test(const char *, int);
extern void cap_index(const char *, int *);
extern int cap_match(const char *names, const char *cap);
extern void edit_init(void);
extern char *get_string_cap_byname(const char *, const char **);
extern int get_string_cap_byvalue(const char *);
extern void show_report(struct test_list *, int *, int *);

 
extern void menu_prompt(void);
extern void menu_can_scan(const struct test_menu *);
extern void menu_display(struct test_menu *, int *);
extern void generic_done_message(struct test_list *, int *, int *);
extern void pad_done_message(struct test_list *, int *, int *);
extern void menu_clear_screen(struct test_list *, int *, int *);
extern void menu_reset_init(struct test_list *, int *, int *);
extern int subtest_menu(struct test_list *, int *, int *);


# 22 "../tack/pad.c" 2


 

 

static void pad_standard(struct test_list *, int *, int *);
static void init_xon_xoff(struct test_list *, int *, int *);
static void init_cup(struct test_list *, int *, int *);
static void pad_rmxon(struct test_list *, int *, int *);
static void pad_home1(struct test_list *, int *, int *);
static void pad_home2(struct test_list *, int *, int *);
static void pad_clear(struct test_list *, int *, int *);
static void pad_ech(struct test_list *, int *, int *);
static void pad_el1(struct test_list *, int *, int *);
static void pad_el(struct test_list *, int *, int *);
static void pad_smdc(struct test_list *, int *, int *);
static void pad_dch(struct test_list *, int *, int *);
static void pad_dch1(struct test_list *, int *, int *);
static void pad_smir(struct test_list *, int *, int *);
static void pad_ich(struct test_list *, int *, int *);
static void pad_ich1(struct test_list *, int *, int *);
static void pad_xch1(struct test_list *, int *, int *);
static void pad_rep(struct test_list *, int *, int *);
static void pad_cup(struct test_list *, int *, int *);
static void pad_hd(struct test_list *, int *, int *);
static void pad_hu(struct test_list *, int *, int *);
static void pad_rin(struct test_list *, int *, int *);
static void pad_il(struct test_list *, int *, int *);
static void pad_indn(struct test_list *, int *, int *);
static void pad_dl(struct test_list *, int *, int *);
static void pad_xl(struct test_list *, int *, int *);
static void pad_scrc(struct test_list *, int *, int *);
static void pad_csrind(struct test_list *, int *, int *);
static void pad_sccsrrc(struct test_list *, int *, int *);
static void pad_csr_nel(struct test_list *, int *, int *);
static void pad_csr_cup(struct test_list *, int *, int *);
static void pad_ht(struct test_list *, int *, int *);
static void pad_smso(struct test_list *, int *, int *);
static void pad_smacs(struct test_list *, int *, int *);
static void pad_crash(struct test_list *, int *, int *);

extern struct test_menu change_pad_menu;

 



const char *pad_repeat_test = {"ep-+<>"};

struct test_list pad_test_list[] = {
	{0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
	{0, 0, 0, 0, "p) change padding", 0, &change_pad_menu},
	{0, 0, 0, 0, "@) display statistics about the last test", dump_test_stats, 0},
	{0, 0, 0, 0, "c) clear screen", menu_clear_screen, 0},
	{0, 0, 0, 0, "i) send reset and init", menu_reset_init, 0},
	{0, 0, 0, 0, txt_longer_test_time, longer_test_time, 0},
	{0, 0, 0, 0, txt_shorter_test_time, shorter_test_time, 0},
	{0, 0, 0, 0, txt_longer_augment, longer_augment, 0},
	{0, 0, 0, 0, txt_shorter_augment, shorter_augment, 0},
	 











	{0x00040000 , 3, "rs1", 0, 0, pad_standard, 0},
	{0x00040000 , 3, "rs2", 0, 0, pad_standard, 0},
	{0x00040000 , 3, "rs3", 0, 0, pad_standard, 0},
	{0x00040000  | 0x00020000 , 0, 0, 0, 0, init_xon_xoff, 0},
	{0x00040000 , 3, "is1", 0, 0, pad_standard, 0},
	{0x00040000 , 3, "is2", 0, 0, pad_standard, 0},
	{0x00040000 , 3, "is3", 0, 0, pad_standard, 0},
	{0x00040000 , 3, "rmxon", "smxon", 0, pad_rmxon, 0},
	{0x00040000  | 0x00020000 , 0, 0, 0, 0, init_cup, 0},
	 


	{0x00040000 , 0, "home", 0, 0, pad_home1, 0},
	{0x00040000 , 0, "home) (nel", 0, 0, pad_home2, 0},
	{0x00040000  | 1, 0, "clear", 0, 0, pad_clear, 0},
	{0x00040000  | 0x00002e00 , 0, "ed", 0, 0, pad_clear, 0},
	{0x00040000  | 0x00001800 , 0, "ech", 0, 0, pad_ech, 0},
	{0x00040000  | 0x00001800 , 0, "el1", "cub1 nel", 0, pad_el1, 0},
	{0x00040000  | 0x00001100 , 0, "el", "nel", 0, pad_el, 0},
	 


	{0x00040000 , 0, "smdc) (rmdc", 0, 0, pad_smdc, 0},
	{0x00040000  | 0x00001800 , 0, "dch", "smdc rmdc", 0, pad_dch, 0},
	{0x00040000  | 0x00001800 , 0, "dch1", "smdc rmdc", 0, pad_dch1, 0},
	{0x00040000 , 0, "smir) (rmir", 0, 0, pad_smir, 0},
	{0x00040000  | 0x00001900 , 0, "ich) (ip", "smir rmir", 0, pad_ich, 0},
	{0x00040000  | 0x00001900 , 0, "ich1) (ip", "smir rmir", 0, pad_ich1, 0},
	{0x00040000 , 4, "ich1) (dch1", "smir rmir", 0, pad_xch1, 0},
	{0x00040000  | 0x00001900 , 0, "rep", 0, 0, pad_rep, 0},
	 


	{0x00040000 , 0, "cup", 0, 0, pad_cup, 0},
	 


	{0x00040000 , 0, "hd", 0, 0, pad_hd, 0},
	{0x00040000 , 0, "hu", 0, 0, pad_hu, 0},
	{0x00040000  | 0x00002e00  | 1, 0, "rin", 0, 0, pad_rin, 0},
	{0x00040000 , 0, "ri", 0, 0, pad_rin, 0},
	{0x00040000  | 0x00002e00  | 1, 0, "il", 0, 0, pad_il, 0},
	{0x00040000 , 0, "il1", 0, 0, pad_il, 0},
	{0x00040000  | 0x00002e00  | 1, 0, "indn", 0, 0, pad_indn, 0},
	{0x00040000 , 0, "ind", 0, 0, pad_indn, 0},
	{0x00040000  | 0x00002e00  | 1, 0, "dl", 0, 0, pad_dl, 0},
	{0x00040000 , 0, "dl1", 0, 0, pad_dl, 0},
	{0x00040000 , 0, "il1) (dl1", 0, 0, pad_xl, 0},
	{0x00040000 , 0, "sc) (rc", 0, 0, pad_scrc, 0},
	{0x00040000  | 0x00002500 , 0, "csr) (ind", 0, 0, pad_csrind, 0},
	{0x00040000 , 0, "sc) (csr) (rc", 0, 0, pad_sccsrrc, 0},
	{0x00040000 , 0, "csr) (nel", "sc rc", 0, pad_csr_nel, 0},
	{0x00040000 , 0, "csr) (cup", 0, 0, pad_csr_cup, 0},
	 


	{0x00040000 , 0, "ht", 0, 0, pad_ht, 0},
	 


	{0x00040000 , 0, "smso) (rmso", 0, 0, pad_smso, 0},
	{0x00040000 , 0, "smacs) (rmacs", 0, 0, pad_smacs, 0},
	 


	{0x00040000 , 3, "flash", 0, 0, pad_standard, 0},
	{0x00040000 , 3, "smkx", 0, 0, pad_standard, 0},
	{0x00040000 , 3, "rmkx", 0, 0, pad_standard, 0},
	{0x00040000 , 3, "smm", 0, 0, pad_standard, 0},
	{0x00040000 , 3, "rmm", 0, 0, pad_standard, 0},
	 


	{0, 0, "clear", "xon", "k) run clear test with no padding", pad_crash, 0},
	{0x00080000 , 0, 0, 0, 0, 0, 0}
};

extern int test_complete;	 

 
int hzcc;			 
char letter;			 
int letter_number;		 
int augment, repeats;		 
char letters[] = "AbCdefghiJklmNopQrStuVwXyZ";

static char every_line[] = "This text should be on every line.";
static char all_lines[] = "Each char on any line should be the same.  ";
static char above_line[] = "The above lines should be all Xs.  ";
static char no_visual[] = "This loop test has no visual failure indicator.  ";

 




static void
pad_standard(
	struct test_list *t,
	int *state,
	int *ch)
{
	const char *long_name;
	char *cap;
	int l = 2, i;
	char tbuf[128];

	if ((cap = get_string_cap_byname(t->caps_done, &long_name))) {
		sprintf(tbuf, "(%s) %s, start testing", t->caps_done,
			long_name);
		if (skip_pad_test(t, state, ch, tbuf)) {
			return;
		}
		i = 1;
		pad_test_startup(1);
		do {
			if (i >= cur_term->type.  Numbers[0] ) {
				page_loop();
				l++;
				i = 1;
			}
			tt_putp(cap);
			putchp(letter);
			i++;
		} while(still_testing());
		pad_test_shutdown(t, 0);
		if (l >= cur_term->type.  Numbers[2] ) {
			home_down();
		} else {
			put_crlf();
		}
		ptextln(no_visual);
	} else {
		if (auto_pad_mode) return ;
		 
		sprintf(temp, "(%s) %s, not present.  ", t->caps_done,
			long_name);
		ptext(temp);
	}
	pad_done_message(t, state, ch);
}

 




static void
init_xon_xoff(
	struct test_list *t __attribute__((unused)) ,
	int *state __attribute__((unused)) ,
	int *ch __attribute__((unused)) )
{
	 
	if (select_xon_xoff == 0 && cur_term->type.  Strings[150] ) {
		tc_putp(cur_term->type.  Strings[150] );
	}
	if (select_xon_xoff == 1 && cur_term->type.  Strings[149] ) {
		tc_putp(cur_term->type.  Strings[149] );
	}
}

 




static void
pad_rmxon(
	struct test_list *t,
	int *state,
	int *ch)
{
	if (select_xon_xoff == 0 && cur_term->type.  Strings[150] ) {
		pad_standard(t, state, ch);
	}
}

 





static void
init_cup(
	struct test_list *t,
	int *state,
	int *ch)
{
	init_xon_xoff(t, state, ch);
	if (cur_term->type.  Strings[28] ) {
		tc_putp(cur_term->type.  Strings[28] );
	}
	if (!can_clear_screen) {
		ptext("(clear) clear screen not present,");
		ptext(" pad processing terminated.  ");
		pad_done_message(t, state, ch);
		if (*ch == 0 || *ch == 'n' || *ch == 's' || *ch == 'r') {
			*ch = '?';
		}
		return;
	}
}

 




static void
pad_home1(
	struct test_list *t,
	int *state,
	int *ch)
{
	int j, k;

	if (can_go_home && cur_term->type.  Booleans[1] ) {
		 



		if (skip_pad_test(t, state, ch, "(home) Home start testing")) {
			return;
		}
		pad_test_startup(1);
		do {
			go_home();
			for (j = 1; j < cur_term->type.  Numbers[2] ; j++) {
				for (k = 0; k < cur_term->type.  Numbers[0] ; k++) {
					if (k & 0xF) {
						put_this(letter);
					} else {
						put_this('.');
					}
				}
				if (!test_complete && ! (no_alarm_event && (tt_delay_used < tt_delay_max)) ) { break; } ;
			}
			letter = letters[letter_number =	letters[letter_number + 1] ? letter_number + 1 : 0] ;
		} while(still_testing());
		pad_test_shutdown(t, 0);
		ptext("All the dots should line up.  ");
		pad_done_message(t, state, ch);
		put_clear();
	}
}

 




static void
pad_home2(
	struct test_list *t,
	int *state,
	int *ch)
{
	int j, k;

	if (can_go_home) {
		if (skip_pad_test(t, state, ch,
			"(home) Home, (nel) newline start testing")) {
			return;
		}
		pad_test_startup(1);
		do {
			go_home();
			for (j = 1; j < cur_term->type.  Numbers[2] ; j++) {
				for (k = 2; k < cur_term->type.  Numbers[0] ; k++) {
					if (k & 0xF) {
						put_this(letter);
					} else {
						put_this('.');
					}
				}
				put_crlf();	 
				if (!test_complete && ! (no_alarm_event && (tt_delay_used < tt_delay_max)) ) { break; } ;
			}
			letter = letters[letter_number =	letters[letter_number + 1] ? letter_number + 1 : 0] ;
		} while(still_testing());
		pad_test_shutdown(t, 0);
		ptext("All the dots should line up.  ");
		pad_done_message(t, state, ch);
		put_clear();
	}
}

 











static void
pad_clear(
	struct test_list *t,
	int *state,
	int *ch)
{
	const char *end_message = 0;
	const char *txt;
	int j, k, is_clear;
	int clear_select;		 

	is_clear = t->flags & 1;
	clear_select = cur_term->type.  Booleans[1]  ? 0 : 1;
	if (is_clear) {
		txt = "(clear) clear-screen start testing";
	} else {
		if (! cur_term->type.  Strings[7] ) {
			if (auto_pad_mode) return ;
			ptext("(ed) erase-to-end-of-display, not present.  ");
			pad_done_message(t, state, ch);
			return;
		}
		txt = "(ed) erase-to-end-of-display start testing";
	}
	if (skip_pad_test(t, state, ch, txt)) {
		return;
	}
	if (cur_term->type.  Strings[151] ) {
		tc_putp(cur_term->type.  Strings[151] );
		clear_select = 0;
	}
	for (; clear_select < 5; clear_select++) {
		if (augment > cur_term->type.  Numbers[2]  || is_clear || ! cur_term->type.  Strings[10] ) {
			augment = cur_term->type.  Numbers[2] ;
		} else {
			if (augment <= 1) {
				augment = 2;
			}
			if (augment < cur_term->type.  Numbers[2] ) {
				put_clear();
				tt_putparm(cur_term->type.  Strings[10] , 1,
					cur_term->type.  Numbers[2]  - augment - 1, 0);
				ptextln("This line should not be erased (ed)");
			}
		}
		repeats = augment;
		switch (clear_select) {
		case 0:
			end_message = "Clear full screen.  ";
			break;
		case 1:
			end_message = "Clear sparse screen.  ";
			if (cur_term->type.  Strings[11] ) {
				break;
			}
			clear_select++;
			 
		case 2:
			end_message = "Clear one character per line.  ";
			if (cur_term->type.  Strings[103] ) {
				break;
			}
			clear_select++;
			 
		case 3:
			end_message = "Clear one full line.  ";
			break;
		case 4:
			end_message = "Clear single short line.  ";
			break;
		}
		pad_test_startup(0);
		do {
			switch (clear_select) {
			case 0:	 
				for (j = 1; j < repeats; j++) {
					for (k = 0; k < cur_term->type.  Numbers[0] ; k++) {
						if (k & 0xF) {
							put_this(letter);
						} else {
							put_this('.');
						}
					}
					if (!test_complete && ! (no_alarm_event && (tt_delay_used < tt_delay_max)) ) { break; } ;
				}
				break;
			case 1:	 
				for (j = cur_term->type.  Numbers[0]  - repeats; j > 2; j--) {
					put_this(letter);
				}
				for (j = 2; j < repeats; j++) {
					tt_putp(cur_term->type.  Strings[11] );
					put_this(letter);
				}
				break;
			case 2:	 
				for (j = 2; j < repeats; j++) {
					put_this(letter);
					tt_putp(cur_term->type.  Strings[103] );
				}
				put_this(letter);
				break;
			case 3:	 
				for (j = cur_term->type.  Numbers[0]  - 5; j > 1; j--) {
					put_this(letter);
				}
				break;
			case 4:	 
				put_str("Erase this!");
				break;
			}
			if (is_clear) {
				put_clear();
			} else {
				if (augment == cur_term->type.  Numbers[2] ) {
					go_home();
				} else {
					tt_putparm(cur_term->type.  Strings[10] , 1,
						cur_term->type.  Numbers[2]  - repeats, 0);
				}
				tt_tputs(cur_term->type.  Strings[7] , repeats);
			}
			letter = letters[letter_number =	letters[letter_number + 1] ? letter_number + 1 : 0] ;
		} while(still_testing());
		pad_test_shutdown(t, 1);
		ptext(end_message);

		pad_done_message(t, state, ch);

		if (*ch != 0 && *ch != 'n') {
			return;
		}
	}
}

 




static void
pad_ech(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i, j;

	if (! cur_term->type.  Strings[37] ) {
		if (auto_pad_mode) return ;
		ptext("(ech) Erase-characters, not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(ech) Erase-characters start testing")) {
		return;
	}
	if (augment > cur_term->type.  Numbers[0]  - 2) {
		augment = cur_term->type.  Numbers[0]  - 2;
	}
	pad_test_startup(1);
	do {
		go_home();
		for (i = 2; i < cur_term->type.  Numbers[2] ; i++) {
			for (j = 0; j <= repeats; j++) {
				putchp(letter);
			}
			put_cr();
			tt_putparm(cur_term->type.  Strings[37] , repeats, repeats, 0);
			put_crlf();
			if (!test_complete && ! (no_alarm_event && (tt_delay_used < tt_delay_max)) ) { break; } ;
		}
		for (i = 1; i <= repeats; i++) {
			putchp(' ');
		}
		putchp(letter);
		put_crlf();
		letter = letters[letter_number =	letters[letter_number + 1] ? letter_number + 1 : 0] ;
	} while(still_testing());
	pad_test_shutdown(t, 0);
	ptext(all_lines);
	pad_done_message(t, state, ch);
	put_clear();
}

 




static void
pad_el1(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i, j;

	if (! cur_term->type.  Strings[269] ) {
		if (auto_pad_mode) return ;
		ptext("(el1) Erase-to-beginning-of-line, not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(el1) Erase-to-beginning-of-line start testing")) {
		return;
	}
	if (augment > cur_term->type.  Numbers[0]  - 2) {
		augment = cur_term->type.  Numbers[0]  - 2;
	}
	pad_test_startup(1);
	do {
		go_home();
		for (i = 2; i < cur_term->type.  Numbers[2] ; i++) {
			for (j = 0; j <= repeats; j++) {
				putchp(letter);
			}
			tt_putp(cur_term->type.  Strings[14] );
			tt_putp(cur_term->type.  Strings[14] );
			tt_tputs(cur_term->type.  Strings[269] , repeats);
			put_crlf();
			if (!test_complete && ! (no_alarm_event && (tt_delay_used < tt_delay_max)) ) { break; } ;
		}
		for (i = 1; i <= repeats; i++) {
			putchp(' ');
		}
		putchp(letter);
		put_crlf();
		letter = letters[letter_number =	letters[letter_number + 1] ? letter_number + 1 : 0] ;
	} while(still_testing());
	pad_test_shutdown(t, 0);
	ptext(all_lines);
	pad_done_message(t, state, ch);
	put_clear();
}

 




static void
pad_el(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i, j;

	if (! cur_term->type.  Strings[6] ) {
		if (auto_pad_mode) return ;
		ptext("(el) Clear-to-end-of-line, not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(el) Clear-to-end-of-line start testing")) {
		return;
	}
	hzcc = cur_term->type.  Numbers[0]  * 8 / 10;	 
	if (augment > hzcc) {
		augment = hzcc;
	}
	pad_test_startup(1);
	do {
		go_home();
		for (i = 2; i < cur_term->type.  Numbers[2] ; i++) {
			for (j = -1; j < augment; j++) {
				putchp(letter);
			}
			put_cr();
			putchp(letter);
			tt_putp(cur_term->type.  Strings[6] );
			put_crlf();
			if (!test_complete && ! (no_alarm_event && (tt_delay_used < tt_delay_max)) ) { break; } ;
		}
		putchp(letter);
		put_crlf();
		letter = letters[letter_number =	letters[letter_number + 1] ? letter_number + 1 : 0] ;
	} while(still_testing());
	pad_test_shutdown(t, 0);
	ptext(all_lines);
	pad_done_message(t, state, ch);
	put_clear();
}

 




static void
pad_smdc(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i;

	if (! cur_term->type.  Strings[29] ) {
		if (auto_pad_mode) return ;
		ptext("(smdc) Enter-delete-mode");
		if (! cur_term->type.  Strings[41] ) {
			ptext(", (rmdc) Exit-delete-mode");
		}
		ptext(", not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(smdc) (rmdc) Enter/Exit-delete-mode start testing")) {
		return;
	}
	pad_test_startup(1);
	do {
		page_loop();
		for (i = 1; i < cur_term->type.  Numbers[0] ; i++) {
			tt_putp(cur_term->type.  Strings[29] );
			tt_putp(cur_term->type.  Strings[41] );
			putchp(letter);
		}
	} while(still_testing());
	pad_test_shutdown(t, 0);
	home_down();
	ptext(no_visual);
	pad_done_message(t, state, ch);
	put_clear();
}

 




static void
pad_dch(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i, j;

	if (! cur_term->type.  Strings[105] ) {
		if (auto_pad_mode) return ;
		ptext("(dch) Delete-characters, not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(dch) Delete-characters start testing")) {
		return;
	}
	hzcc = cur_term->type.  Numbers[0]  * 8 / 10;	 
	if (augment > hzcc) {
		augment = hzcc;
	}
	pad_test_startup(1);
	do {
		go_home();
		for (i = 2; i < cur_term->type.  Numbers[2] ; i++) {
			for (j = 0; j <= repeats; j++) {
				putchp(letter);
			}
			put_cr();
			tt_putp(cur_term->type.  Strings[29] );
			tt_putparm(cur_term->type.  Strings[105] , repeats, repeats, 0);
			tt_putp(cur_term->type.  Strings[41] );
			put_crlf();
			if (!test_complete && ! (no_alarm_event && (tt_delay_used < tt_delay_max)) ) { break; } ;
		}
		putchp(letter);
		put_crlf();
		letter = letters[letter_number =	letters[letter_number + 1] ? letter_number + 1 : 0] ;
	} while(still_testing());
	pad_test_shutdown(t, 0);
	home_down();
	ptext(all_lines);
	pad_done_message(t, state, ch);
	put_clear();
}

 




static void
pad_dch1(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i, j;

	if (! cur_term->type.  Strings[21] ) {
		if (cur_term->type.  Strings[105] ) {
			 
			return;
		}
		if (auto_pad_mode) return ;
		ptext("(dch1) Delete-character, not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(dch1) Delete-character start testing")) {
		return;
	}
	hzcc = cur_term->type.  Numbers[0]  * 8 / 10;	 
	if (augment > hzcc) {
		augment = hzcc;
	}
	pad_test_startup(1);
	do {
		go_home();
		for (i = 2; i < cur_term->type.  Numbers[2] ; i++) {
			for (j = -1; j < augment; j++) {
				putchp(letter);
			}
			put_cr();
			tt_putp(cur_term->type.  Strings[29] );
			for (j = 0; j < augment; j++) {
				tt_putp(cur_term->type.  Strings[21] );
			}
			tt_putp(cur_term->type.  Strings[41] );
			put_crlf();
			if (!test_complete && ! (no_alarm_event && (tt_delay_used < tt_delay_max)) ) { break; } ;
		}
		putchp(letter);
		put_crlf();
		letter = letters[letter_number =	letters[letter_number + 1] ? letter_number + 1 : 0] ;
	} while(still_testing());
	pad_test_shutdown(t, 0);
	ptext(all_lines);
	pad_done_message(t, state, ch);
	put_clear();
}

 




static void
pad_smir(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i;

	if (! cur_term->type.  Strings[31] ) {
		if (auto_pad_mode) return ;
		ptext("(smir) Enter-insert-mode");
		if (! cur_term->type.  Strings[42] ) {
			ptext(", (rmir) Exit-insert-mode");
		}
		ptext(", not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(smir) (rmir) Enter/Exit-insert-mode start testing")) {
		return;
	}
	pad_test_startup(1);
	do {
		page_loop();
		for (i = 1; i < cur_term->type.  Numbers[0] ; i++) {
			tt_putp(cur_term->type.  Strings[31] );
			tt_putp(cur_term->type.  Strings[42] );
			putchp(letter);
		}
	} while(still_testing());
	pad_test_shutdown(t, 0);
	home_down();
	ptext(no_visual);
	pad_done_message(t, state, ch);
	put_clear();
}

 




static void
pad_ich(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i, j;

	if (! cur_term->type.  Strings[108] ) {
		if (auto_pad_mode) return ;
		ptext("(ich) Insert-characters, not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(ich) Insert-characters, (ip) Insert-padding start testing")) {
		return;
	}
	j = cur_term->type.  Numbers[0]  * 9 / 10;
	if (augment > j) {
		augment = j;
	}
	pad_test_startup(1);
	do {
		go_home();
		for (i = 2; i < cur_term->type.  Numbers[2] ; i++) {
			putchp(letter);
			put_cr();
			tt_putp(cur_term->type.  Strings[31] );
			replace_mode = 0;
			tt_putparm(cur_term->type.  Strings[108] , repeats, repeats, 0);
			tt_putp(cur_term->type.  Strings[42] );
			replace_mode = 1;
			put_crlf();
			if (!test_complete && ! (no_alarm_event && (tt_delay_used < tt_delay_max)) ) { break; } ;
		}
		for (i = 0; i < repeats; i++) {
			putchp(' ');
		}
		putchp(letter);
		letter = letters[letter_number =	letters[letter_number + 1] ? letter_number + 1 : 0] ;
		put_crlf();
	} while(still_testing());
	pad_test_shutdown(t, 0);
	ptext(all_lines);
	pad_done_message(t, state, ch);
	tc_putp(cur_term->type.  Strings[42] );
}

 




static void
pad_ich1(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i, j;

	if (! cur_term->type.  Strings[52] ) {
		if (auto_pad_mode) return ;
		ptext("(ich1) Insert-character, not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(ich1) Insert-character, (ip) Insert-padding start testing")) {
		return;
	}
	if (augment > cur_term->type.  Numbers[0]  - 2) {
		augment = cur_term->type.  Numbers[0]  - 2;
	}
	pad_test_startup(1);
	do {
		put_clear();
		for (i = 2; i < cur_term->type.  Numbers[2] ; i++) {
			putchp(letter);
			put_cr();
			tt_putp(cur_term->type.  Strings[31] );
			replace_mode = 0;
			if (! cur_term->type.  Strings[54]  && ! cur_term->type.  Strings[52] ) {
				 
				for (j = 0; j < augment; j++) {
					putchp('.');
				}
			} else {
				for (j = 0; j < augment; j++) {
					tt_putp(cur_term->type.  Strings[52] );
					putchp('.');
					tt_putp(cur_term->type.  Strings[54] );
				}
			}
			tt_putp(cur_term->type.  Strings[42] );
			replace_mode = 1;
			put_crlf();
			if (!test_complete && ! (no_alarm_event && (tt_delay_used < tt_delay_max)) ) { break; } ;
		}
		for (j = 0; j < augment; j++) {
			putchp('.');
		}
		putchp(letter);
		letter = letters[letter_number =	letters[letter_number + 1] ? letter_number + 1 : 0] ;
		put_crlf();
	} while(still_testing());
	pad_test_shutdown(t, 0);
	ptext(all_lines);
	pad_done_message(t, state, ch);
	tc_putp(cur_term->type.  Strings[42] );
}

 




static void
pad_xch1(
	struct test_list *t,
	int *state,
	int *ch)
{
	static char xch1[] =
	"This line should not be garbled. It should be left justified.";

	if (cur_term->type.  Strings[31]  || cur_term->type.  Strings[42]  ||
		cur_term->type.  Strings[29]  || cur_term->type.  Strings[41]  ||
		! cur_term->type.  Strings[52]  || ! cur_term->type.  Strings[21] ) {
		 
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(ich1) Insert-character, (dch1) Delete-character start testing")) {
		return;
	}
	put_crlf();
	ptext(xch1);
	put_cr();
	pad_test_startup(0);
	do {
		tt_putp(cur_term->type.  Strings[52] );
		tt_putp(cur_term->type.  Strings[21] );
	} while(still_testing());
	pad_test_shutdown(t, 1);
	ptextln(xch1);
	ptext("The preceding two lines should be the same.  ");
	pad_done_message(t, state, ch);
}

 




static void
pad_rep(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i, j;

	if (! cur_term->type.  Strings[121] ) {
		if (auto_pad_mode) return ;
		ptext("(rep) Repeat-character, not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(rep) Repeat-character start testing")) {
		return;
	}
	if (augment > cur_term->type.  Numbers[0]  - 2) {
		augment = cur_term->type.  Numbers[0]  - 2;
	}
	if (augment < 2) {
		augment = 2;
	}
	pad_test_startup(1);
	do {
		go_home();
		for (i = 2; i < cur_term->type.  Numbers[2] ; i++) {
			tt_putparm(cur_term->type.  Strings[121] , repeats, letter, repeats);
			put_crlf();
		}
		for (j = 0; j < repeats; j++) {
			putchp(letter);
		}
		put_crlf();
		letter = letters[letter_number =	letters[letter_number + 1] ? letter_number + 1 : 0] ;
	} while(still_testing());
	pad_test_shutdown(t, 0);
	ptextln(all_lines);
	pad_done_message(t, state, ch);
}

 




static void
pad_cup(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i, j, l, r, c;

	if (! cur_term->type.  Strings[10] ) {
		if (auto_pad_mode) return ;
		ptext("(cup) Cursor-address not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(cup) Cursor-address start testing")) {
		return;
	}
	put_clear();
	ptext("Each line should be filled with the same letter.  There should");
	ptext(" be no gaps, or single letters scattered over the screen.  ");
	if (char_count + 15 > cur_term->type.  Numbers[0] ) {
		put_crlf();
	}
	if (((cur_term->type.  Numbers[2]  - line_count) & 1) == 0) {
		 

		put_crlf();
	}
	r = line_count;
	c = char_count;
	l = (cur_term->type.  Numbers[0]  - 4) >> 1;
	pad_test_startup(0);
	do {
		for (i = 1; i + i + r < cur_term->type.  Numbers[2] ; i++) {
			for (j = 0; j <= l; j++) {
				tt_putparm(cur_term->type.  Strings[10] , 1, r + i, j);
				putchp(letter);
				tt_putparm(cur_term->type.  Strings[10] , 1, r + i, l + l + 1 - j);
				putchp(letter);
				tt_putparm(cur_term->type.  Strings[10] , 1, cur_term->type.  Numbers[2]  - i, j);
				putchp(letter);
				tt_putparm(cur_term->type.  Strings[10] , 1, cur_term->type.  Numbers[2]  - i, l + l + 1 - j);
				putchp(letter);
			}
			if (!test_complete && ! (no_alarm_event && (tt_delay_used < tt_delay_max)) ) { break; } ;
		}
		letter = letters[letter_number =	letters[letter_number + 1] ? letter_number + 1 : 0] ;
	} while(still_testing());
	pad_test_shutdown(t, 0);
	tt_putparm(cur_term->type.  Strings[10] , 1, line_count = r, char_count = c);
	pad_done_message(t, state, ch);
	put_clear();
}

 




static void
pad_hd(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i, j, k;

	if (! cur_term->type.  Strings[24] ) {
		if (auto_pad_mode) return ;
		ptext("(hd) Half-line-down not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(hd) Half-line-down start testing")) {
		return;
	}
	pad_test_startup(1);
	do {
		for (i = 1; i < cur_term->type.  Numbers[0] ; i += 2) {
			for (j = 1; j < i; ++j) {
				putchp(' ');
			}
			tt_putp(cur_term->type.  Strings[24] );
			for (k = cur_term->type.  Numbers[2]  + cur_term->type.  Numbers[2] ; k > 4; k--) {
				if (j++ >= cur_term->type.  Numbers[0] ) {
					break;
				}
				tt_putp(cur_term->type.  Strings[24] );
				putchp(letter);
			}
			go_home();
			if (!test_complete && ! (no_alarm_event && (tt_delay_used < tt_delay_max)) ) { break; } ;
		}
		letter = letters[letter_number =	letters[letter_number + 1] ? letter_number + 1 : 0] ;
	} while(still_testing());
	pad_test_shutdown(t, 0);
	pad_done_message(t, state, ch);
	put_clear();
}

 




static void
pad_hu(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i, j, k;

	if (! cur_term->type.  Strings[137] ) {
		if (auto_pad_mode) return ;
		ptext("(hu) Half-line-up not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(hu) Half-line-up start testing")) {
		return;
	}
	pad_test_startup(1);
	do {
		for (i = 1; i < cur_term->type.  Numbers[0] ; i += 2) {
			home_down();
			for (j = 1; j < i; ++j) {
				putchp(' ');
			}
			tt_putp(cur_term->type.  Strings[137] );
			for (k = cur_term->type.  Numbers[2]  + cur_term->type.  Numbers[2] ; k > 4; k--) {
				if (j++ >= cur_term->type.  Numbers[0] ) {
					break;
				}
				tt_putp(cur_term->type.  Strings[137] );
				putchp(letter);
			}
			if (!test_complete && ! (no_alarm_event && (tt_delay_used < tt_delay_max)) ) { break; } ;
		}
		go_home();
		letter = letters[letter_number =	letters[letter_number + 1] ? letter_number + 1 : 0] ;
	} while(still_testing());
	pad_test_shutdown(t, 0);
	pad_done_message(t, state, ch);
	put_clear();
}

 




static void
pad_rin(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i;
	const char *start_message;

	if (t->flags & 1) {
		 
		if (! cur_term->type.  Strings[113] ) {
			if (auto_pad_mode) return ;
			ptext("(rin) Scroll-reverse-n-lines not present.  ");
			pad_done_message(t, state, ch);
			return;
		}
		start_message = "(rin) Scroll-reverse-n-lines start testing";
	} else {
		 
		if (! cur_term->type.  Strings[130] ) {
			if (auto_pad_mode) return ;
			ptext("(ri) Scroll-reverse not present.  ");
			pad_done_message(t, state, ch);
			return;
		}
		start_message = "(ri) Scroll-reverse start testing";
		augment = 1;
	}
	if (skip_pad_test(t, state, ch, start_message)) {
		return;
	}
	pad_test_startup(1);
	do {
		sprintf(temp, "%d\r", test_complete);
		put_str(temp);
		if (cur_term->type.  Strings[130]  && augment == 1) {
			tt_putp(cur_term->type.  Strings[130] );
		} else {
			tt_putparm(cur_term->type.  Strings[113] , repeats, repeats, 0);
		}
	} while(still_testing());
	put_str("This line should be on the bottom.\r");
	if (cur_term->type.  Strings[130]  && augment == 1) {
		for (i = 1; i < cur_term->type.  Numbers[2] ; i++) {
			tt_putp(cur_term->type.  Strings[130] );
		}
	} else {
		tt_putparm(cur_term->type.  Strings[113] , cur_term->type.  Numbers[2]  - 1, cur_term->type.  Numbers[2]  - 1, 0);
	}
	putln("The screen should have text on the bottom line.");
	sprintf(temp, "Scroll reverse %d line%s.  ", augment,
		augment == 1 ? "" : "s");
	put_str(temp);
	pad_test_shutdown(t, 0);
	pad_done_message(t, state, ch);
	put_clear();
}

 




static void
pad_il(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i;
	const char *start_message;

	if (t->flags & 1) {
		 
		if (! cur_term->type.  Strings[110] ) {
			if (auto_pad_mode) return ;
			ptext("(il) Insert-lines not present.  ");
			pad_done_message(t, state, ch);
			return;
		}
		start_message = "(il) Insert-lines start testing";
	} else {
		 
		if (! cur_term->type.  Strings[53] ) {
			if (auto_pad_mode) return ;
			ptext("(il1) Insert-line not present.  ");
			pad_done_message(t, state, ch);
			return;
		}
		start_message = "(il1) Insert-line start testing";
		augment = 1;
	}
	if (skip_pad_test(t, state, ch, start_message)) {
		return;
	}
	pad_test_startup(1);
	do {
		sprintf(temp, "%d\r", test_complete);
		put_str(temp);
		if (cur_term->type.  Strings[53]  && repeats == 1) {
			tt_putp(cur_term->type.  Strings[53] );
		} else {
			tt_putparm(cur_term->type.  Strings[110] , repeats, repeats, 0);
		}
	} while(still_testing());
	put_str("This line should be on the bottom.\r");
	if (cur_term->type.  Strings[130]  && augment == 1) {
		for (i = 1; i < cur_term->type.  Numbers[2] ; i++) {
			tt_putp(cur_term->type.  Strings[53] );
		}
	} else {
		tt_putparm(cur_term->type.  Strings[110] , cur_term->type.  Numbers[2]  - 1, cur_term->type.  Numbers[2]  - 1, 0);
	}
	putln("The screen should have text on the bottom line.");
	sprintf(temp, "Insert %d line%s.  ", augment,
		augment == 1 ? "" : "s");
	put_str(temp);
	pad_test_shutdown(t, 0);
	pad_done_message(t, state, ch);
	put_clear();
}

 




static void
pad_indn(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i;
	const char *start_message;

	if (t->flags & 1) {
		 
		if (! cur_term->type.  Strings[109] ) {
			if (auto_pad_mode) return ;
			ptext("(indn) Scroll-forward-n-lines not present.  ");
			pad_done_message(t, state, ch);
			return;
		}
		start_message = "(indn) Scroll-forward-n-lines start testing";
	} else {
		 
		if (! cur_term->type.  Strings[129]  && cur_term->type.  Booleans[15] ) {
			if (auto_pad_mode) return ;
			ptext("(ind) Scroll-forward not tested on overstrike terminals.  ");
			pad_done_message(t, state, ch);
			return;
		}
		start_message = "(ind) Scroll-forward start testing";
		augment = 1;
	}
	if (skip_pad_test(t, state, ch, start_message)) {
		return;
	}
	pad_test_startup(1);
	 
	home_down();
	do {
		sprintf(temp, "%d\r", test_complete);
		put_str(temp);
		if (augment > 1) {
			tt_putparm(cur_term->type.  Strings[109] , repeats, repeats, 0);
		} else {
			put_ind();
		}
	} while(still_testing());
	put_str("This line should be on the top.\r");
	if (augment == 1) {
		for (i = 1; i < cur_term->type.  Numbers[2] ; i++) {
			put_ind();
		}
	} else {
		tt_putparm(cur_term->type.  Strings[109] , cur_term->type.  Numbers[2]  - 1, cur_term->type.  Numbers[2]  - 1, 0);
	}
	go_home();
	sprintf(temp, "\nScroll forward %d line%s.  ", augment,
		augment == 1 ? "" : "s");
	put_str(temp);
	pad_test_shutdown(t, 0);
	pad_done_message(t, state, ch);
}

 




static void
pad_dl(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i = 0;
	const char *start_message;

	if (t->flags & 1) {
		 
		if (! cur_term->type.  Strings[106] ) {
			if (auto_pad_mode) return ;
			ptext("(dl) Delete-lines not present.  ");
			pad_done_message(t, state, ch);
			return;
		}
		start_message = "(dl) Delete-lines start testing";
	} else {
		 
		if (! cur_term->type.  Strings[22] ) {
			if (auto_pad_mode) return ;
			ptext("(dl1) Delete-line not present.  ");
			pad_done_message(t, state, ch);
			return;
		}
		start_message = "(dl1) Delete-line start testing";
		augment = 1;
	}
	if (skip_pad_test(t, state, ch, start_message)) {
		return;
	}
	pad_test_startup(1);
	do {
		sprintf(temp, "%d\r", test_complete);
		if ((i & 0x7f) == 0 && augment < cur_term->type.  Numbers[2]  - 1) {
			go_home();
			putln(temp);
		}
		put_str(temp);
		if (repeats || ! cur_term->type.  Strings[22] ) {
			tt_putparm(cur_term->type.  Strings[106] , repeats, repeats, 0);
		} else {
			tt_putp(cur_term->type.  Strings[22] );
		}
	} while(still_testing());
	home_down();
	put_str("This line should be on the top.");
	go_home();
	if (repeats || ! cur_term->type.  Strings[22] ) {
		tt_putparm(cur_term->type.  Strings[106] , cur_term->type.  Numbers[2]  - 1, cur_term->type.  Numbers[2]  - 1, 0);
	} else {
		for (i = 1; i < cur_term->type.  Numbers[2] ; i++) {
			tt_putp(cur_term->type.  Strings[22] );
		}
	}
	sprintf(temp, "\nDelete %d line%s.  ", augment,
		augment == 1 ? "" : "s");
	put_str(temp);
	pad_test_shutdown(t, 0);
	pad_done_message(t, state, ch);
}

 




static void
pad_xl(
	struct test_list *t,
	int *state,
	int *ch)
{
	if (! cur_term->type.  Strings[53]  && ! cur_term->type.  Strings[22] ) {
		 
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(il1) Insert-line, (dl1) Delete-line start testing")) {
		return;
	}
	put_clear();
	putln("\rThis text is written on the first line.");
	ptext("This sentence begins on the second line.  As this");
	ptext(" test runs the bottom part of this paragraph will");
	ptext(" jump up and down.  Don't worry, that's normal.  When");
	ptext(" the jumping stops, the entire paragraph should");
	ptext(" still be on the screen and in the same place as when");
	ptext(" the test started.  If this paragraph has scrolled");
	ptext(" off the top or bottom of the screen then the test");
	ptext(" has failed.  Scrolling off the top of the screen");
	ptext(" usually means that the delete line capability is");
	ptext(" working better than the insert line capability.  If");
	ptext(" the text scrolls off the bottom then delete line may");
	ptext(" be broken.  If parts of the text are missing then");
	ptext(" you should get professional help.");
	put_crlf();
	go_home();
	put_newlines(2);
	pad_test_startup(0);
	do {
		tt_putp(cur_term->type.  Strings[53] );
		put_cr();
		tt_putp(cur_term->type.  Strings[22] );
	} while(still_testing());
	pad_test_shutdown(t, 0);
	home_down();
	ptext("The top of the screen should have a paragraph of text.  ");
	pad_done_message(t, state, ch);
}

 




static void
pad_scrc(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i;

	if (! cur_term->type.  Strings[128]  || ! cur_term->type.  Strings[126] ) {
		if (auto_pad_mode) return ;
		if (cur_term->type.  Strings[128] ) {
			ptext("(rc) Restore-cursor");
		} else
		if (cur_term->type.  Strings[126] ) {
			ptext("(sc) Save-cursor");
		} else {
			ptext("(sc) Save-cursor, (rc) Restore-cursor");
		}
		ptext(" not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(sc) (rc) Save/Restore-cursor start testing")) {
		return;
	}
	pad_test_startup(1);
	do {
		page_loop();
		for (i = 1; i < cur_term->type.  Numbers[0] ; i++) {
			tt_putp(cur_term->type.  Strings[128] );
			putchp(letter);
			tt_putp(cur_term->type.  Strings[126] );
			putchp('X');
		}
	} while(still_testing());
	pad_test_shutdown(t, 0);
	home_down();
	ptext(above_line);
	pad_done_message(t, state, ch);
}

 




static void
pad_csrind(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i;

	if (! cur_term->type.  Strings[3] ) {
		if (auto_pad_mode) return ;
		ptext("(csr) Change-scroll-region not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(csr) Save/Restore-cursor, (ind) index start testing")) {
		return;
	}
	if (augment < 2) {
		augment = 2;
	}
	if (augment > cur_term->type.  Numbers[2]  - 1) {
		augment = cur_term->type.  Numbers[2]  - 1;
	}
	put_clear();
	ptext("This text is on the top line.");
	tt_putparm(cur_term->type.  Strings[3] , 1, cur_term->type.  Numbers[2]  - augment, cur_term->type.  Numbers[2]  - 1);
	 
	home_down();
	pad_test_startup(0);
	do {
		sprintf(temp, "%d\r", test_complete);
		put_str(temp);
		put_ind();
	} while(still_testing());
	ptextln("(csr) is broken.");
	for (i = augment; i > 1; i--) {
		put_ind();
	}
	pad_test_shutdown(t, 0);
	ptext("All but top and bottom lines should be blank.  ");
	pad_done_message(t, state, ch);
	tt_putparm(cur_term->type.  Strings[3] , 1, 0, cur_term->type.  Numbers[2]  - 1);
	put_clear();
}

 




static void
pad_sccsrrc(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i;

	if (! cur_term->type.  Strings[128]  || ! cur_term->type.  Strings[3]  || ! cur_term->type.  Strings[126] ) {
		 
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(sc) (csr) (rc) Save/Change/Restore-cursor, start testing")) {
		return;
	}
	pad_test_startup(1);
	do {
		page_loop();
		for (i = 1; i < cur_term->type.  Numbers[0] ; i++) {
			tt_putp(cur_term->type.  Strings[128] );
			putchp(letter);
			tt_putparm(cur_term->type.  Strings[3] , 1, 0, cur_term->type.  Numbers[2]  - 1);
			tt_putp(cur_term->type.  Strings[126] );
			putchp('X');
		}
	} while(still_testing());
	pad_test_shutdown(t, 0);
	home_down();
	ptext(above_line);
	pad_done_message(t, state, ch);
	tt_putparm(cur_term->type.  Strings[3] , 1, 0, cur_term->type.  Numbers[2]  - 1);
}

 




static void
pad_csr_nel(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i, j;

	if (! cur_term->type.  Strings[128]  || ! cur_term->type.  Strings[3]  || ! cur_term->type.  Strings[126] ) {
		 
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(csr) Change-scroll-region, (nel) newline start testing")) {
		return;
	}
	pad_test_startup(1);
	do {
		for (i = 0; i < cur_term->type.  Numbers[2] ; i++) {
			for (j = cur_term->type.  Numbers[2]  - i; j > 0; j--) {
				put_crlf();
			}
			tt_putp(cur_term->type.  Strings[128] );
			tt_putparm(cur_term->type.  Strings[3] , 1, i, cur_term->type.  Numbers[2]  - 1);
			tt_putp(cur_term->type.  Strings[126] );
			put_str(every_line);
		}
		tt_putp(cur_term->type.  Strings[128] );
		tt_putparm(cur_term->type.  Strings[3] , 1, 0, cur_term->type.  Numbers[2]  - 1);
		tt_putp(cur_term->type.  Strings[126] );
	} while(still_testing());
	pad_test_shutdown(t, 0);
	put_str("  ");
	pad_done_message(t, state, ch);
	tt_putparm(cur_term->type.  Strings[3] , 1, 0, cur_term->type.  Numbers[2]  - 1);
}

 




static void
pad_csr_cup(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i, j;

	if (! cur_term->type.  Strings[3]  || ! cur_term->type.  Strings[10] ) {
		 
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(csr) Change-scroll-region, (cup) cursor-address start testing")) {
		return;
	}
	pad_test_startup(1);
	do {
		for (i = 0; i < cur_term->type.  Numbers[2] ; i++) {
			for (j = cur_term->type.  Numbers[2]  - i; j > 0; j--) {
				put_crlf();
			}
			tt_putparm(cur_term->type.  Strings[3] , 1, i, cur_term->type.  Numbers[2]  - 1);
			tt_putparm(cur_term->type.  Strings[10] , 1, cur_term->type.  Numbers[2]  - 1, 0);
			put_str(every_line);
		}
		tt_putparm(cur_term->type.  Strings[3] , 1, 0, cur_term->type.  Numbers[2]  - 1);
		tt_putparm(cur_term->type.  Strings[10] , 1, cur_term->type.  Numbers[2]  - 1, strlen(every_line));
	} while(still_testing());
	pad_test_shutdown(t, 0);
	put_str("  ");
	pad_done_message(t, state, ch);
	tt_putparm(cur_term->type.  Strings[3] , 1, 0, cur_term->type.  Numbers[2]  - 1);
}

 




static void
pad_ht(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i, j;

	if (! cur_term->type.  Strings[132]  && cur_term->type.  Numbers[1]  <= 0) {
		if (auto_pad_mode) return ;
		ptext("(ht) Tab not tested.  (hts) Set-tabs and (it) initial-tabs not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch, "(ht) Tab start testing")) {
		return;
	}
	pad_test_startup(1);
	do {
		 





		if (cur_term->type.  Booleans[1]  && can_go_home)
			for (i = 1, go_home(); i < cur_term->type.  Numbers[2]  - 2; i++) {
				for (j = 8; j < cur_term->type.  Numbers[0] ; j += 8) {
					putchp('\t');
				}
				put_str("A        ");
			}
		if (cur_term->type.  Strings[11]  && can_go_home)
			for (i = 1, go_home(); i < cur_term->type.  Numbers[2]  - 2; i++) {
				for (j = 8; j < cur_term->type.  Numbers[0] ; j += 8) {
					putchp('\t');
				}
				put_str("D\r");
				tt_putp(cur_term->type.  Strings[11] );
			}
		if (cur_term->type.  Strings[10] )
			for (i = 1; i < cur_term->type.  Numbers[2]  - 2; i++) {
				tt_putparm(cur_term->type.  Strings[10] , 1, i - 1, 0);
				for (j = 8; j < cur_term->type.  Numbers[0] ; j += 8) {
					putchp('\t');
				}
				put_str("C");
			}
		go_home();
		for (i = 1; i < cur_term->type.  Numbers[2]  - 2; i++) {
			for (j = 8; j < cur_term->type.  Numbers[0] ; j += 8) {
				putchp('\t');
			}
			putln("N");
		}
	} while(still_testing());
	pad_test_shutdown(t, 0);
	ptextln("Letters on the screen other than Ns at the right margin indicate failure.");
	ptext("A-(am) D-(cud1) C-(cup) N-(nel)  ");
	pad_done_message(t, state, ch);
}

 




static void
pad_smso(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i, j;

	if (! cur_term->type.  Strings[35]  || ! cur_term->type.  Strings[43] ) {
		if (auto_pad_mode) return ;
		ptext("(smso) (rmso) Enter/Exit-standout-mode not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(smso) (rmso) Enter/Exit-standout-mode start testing")) {
		return;
	}
	 





	pad_test_startup(1);
	do {
		page_loop();
		j = cur_term->type.  Numbers[4]  > 0 ? cur_term->type.  Numbers[4]  : 0;
		for (i = 2 + j + j; i < cur_term->type.  Numbers[0] ;) {
			put_mode(cur_term->type.  Strings[35] );
			i += j + j + 2;
			putchp('X');
			put_mode(cur_term->type.  Strings[43] );
			putchp('X');
		}
	} while(still_testing());
	pad_test_shutdown(t, 0);
	home_down();
	ptext(above_line);
	pad_done_message(t, state, ch);
	put_mode(cur_term->type.  Strings[43] );
}

 




static void
pad_smacs(
	struct test_list *t,
	int *state,
	int *ch)
{
	int i, j;

	 
	if (! cur_term->type.  Strings[25] ) {
		if (auto_pad_mode) return ;
		ptext("(smacs) Enter-altcharset-mode not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	if (skip_pad_test(t, state, ch,
		"(smacs) (rmacs) Enter/Exit-altcharset-mode start testing")) {
		return;
	}
	pad_test_startup(1);
	do {
		page_loop();
		j = cur_term->type.  Numbers[4]  > 0 ? cur_term->type.  Numbers[4]  : 0;
		for (i = 2 + j + j; i < cur_term->type.  Numbers[0] ;) {
			put_mode(cur_term->type.  Strings[25] );
			i += j + j + 2;
			putchp(letter);
			put_mode(cur_term->type.  Strings[38] );
			putchp(letter);
		}
	} while(still_testing());
	pad_test_shutdown(t, 0);
	home_down();
	ptext("Every other character is from the alternate character set.  ");
	pad_done_message(t, state, ch);
	put_mode(cur_term->type.  Strings[38] );
}

 




static void
pad_crash(
	struct test_list *t,
	int *state,
	int *ch)
{
	int save_xon_xoff;

	if (! cur_term->type.  Strings[5] ) {
		ptext("(clear) Clear-screen not present.  ");
		pad_done_message(t, state, ch);
		return;
	}
	ptext("If you would like to see if the terminal will really lock up.");
	ptextln("  I will send the clear screen sequence without the pads.");
	if (skip_pad_test(t, state, ch,
		"(clear) Clear-screen start crash testing")) {
		return;
	}
	save_xon_xoff = cur_term->type.  Booleans[20] ;
	cur_term->type.  Booleans[20]  = 1;
	pad_test_startup(0);
	do {
		put_str("Erase this!");
		tt_putp(cur_term->type.  Strings[5] );
	} while(still_testing());
	cur_term->type.  Booleans[20]  = save_xon_xoff;
	pad_test_shutdown(t, 1);
	pad_done_message(t, state, ch);
}

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]