This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Internal Compiler Error (bug?)
- To: gcc-bugs at gcc dot gnu dot org
- Subject: Internal Compiler Error (bug?)
- From: Trevor Nichols <data at toaster dot levels dot unisa dot edu dot au>
- Date: Tue, 15 Aug 2000 08:56:26 +0930 (CST)
[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);
}