#include <sys/param.h>
#include <sys/ioctl.h>
#include <sys/time.h>
#include <sys/wait.h>
#include <machine/endian.h>
#include <err.h>
#include <fcntl.h>
#include <errno.h>
#include <dirent.h>
#include <pwd.h>
#include <setjmp.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <termios.h>
#include <time.h>
#include <unistd.h>
extern char *DV;
extern char *EL;
extern char *CM;
extern char *IE;
extern char *OE;
extern char *CU;
extern char *AT;
extern char *PN;
extern char *DI;
extern char *PA;
extern char *PH;
extern char *RM;
extern char *HO;
extern long BR;
extern long FS;
extern long DU;
extern long HW;
extern char *ES;
extern char *EX;
extern char *FO;
extern char *RC;
extern char *RE;
extern char *PR;
extern long DL;
extern long CL;
extern long ET;
extern long HD;
extern char DC;
typedef
struct {
const char *v_name;
uint8_t v_type;
uint8_t v_access;
const char *v_abrev;
void *v_value;
}
value_t;
#define STRING 01
#define BOOL 02
#define NUMBER 04
#define CHAR 010
#define WRITE 01
#define READ 02
#define CHANGED 01
#define PUBLIC 1
#define PRIVATE 03
#define ROOT 05
#define TRUE 1
#define FALSE 0
#define ENVIRON 020
#define IREMOTE 040
#define INIT 0100
#define TMASK 017
typedef
struct {
const char *acu_name;
int (*acu_dialer)(char *, char *);
void (*acu_disconnect)(void);
void (*acu_abort)(void);
}
acu_t;
#define value(v) vtable[v].v_value
#define number(v) ((int)(intptr_t)(v))
#define boolean(v) ((short)(intptr_t)(v))
#define character(v) ((char)(intptr_t)(v))
#define address(v) ((long *)(intptr_t)(v))
#define setnumber(v,n) do { (v) = (char *)(intptr_t)(n); } while (0)
#define setboolean(v,n) do { (v) = (char *)(intptr_t)(n); } while (0)
#define setcharacter(v,n) do { (v) = (char *)(intptr_t)(n); } while (0)
#define setaddress(v,n) do { (v) = (char *)(intptr_t)(n); } while (0)
typedef
struct {
char e_char;
char e_flags;
const char *e_help;
void (*e_func)(char);
}
esctable_t;
#define NORM 00
#define EXP 01
#define PRIV 02
extern int vflag;
extern value_t vtable[];
#define BEAUTIFY 0
#define BAUDRATE 1
#define DIALTIMEOUT 2
#define EOFREAD 3
#define EOFWRITE 4
#define EOL 5
#define ESCAPE 6
#define EXCEPTIONS 7
#define FORCE 8
#define FRAMESIZE 9
#define HOST 10
#define PHONES 11
#define PROMPT 12
#define RAISE 13
#define RAISECHAR 14
#define RECORD 15
#define REMOTE 16
#define SCRIPT 17
#define TABEXPAND 18
#define VERBOSE 19
#define SHELL 20
#define HOME 21
#define ECHOCHECK 22
#define DISCONNECT 23
#define TAND 24
#define LDELAY 25
#define CDELAY 26
#define ETIMEOUT 27
#define RAWFTP 28
#define HALFDUPLEX 29
#define LECHO 30
#define PARITY 31
#define HARDWAREFLOW 32
extern struct termios term;
extern struct termios defterm;
extern struct termios defchars;
extern FILE *fscript;
extern int attndes[2];
extern int fildes[2];
extern int repdes[2];
extern int FD;
#ifndef __lint__
extern int AC;
#endif
extern int sfd;
extern int pid;
extern uid_t uid, euid;
extern gid_t gid, egid;
extern int stop;
extern int quit;
extern int stoprompt;
extern int timedout;
extern int cumode;
extern int bits8;
#define STRIP_PAR (bits8 ? 0377 : 0177)
extern char fname[80];
extern char copyname[80];
extern char ccc;
extern int odisc;
extern acu_t acutable[];
extern esctable_t etable[];
extern unsigned char evenpartab[];
void alrmtimeout(int);
int any(char, const char *);
void chdirectory(char);
void cleanup(int) __dead;
const char *tip_connect(void);
void consh(char);
char *ctrl(char);
void cumain(int, char **);
void cu_put(char);
void cu_take(char);
void disconnect(const char *);
char *expand(char *);
void finish(char) __dead;
void genbrk(char);
void getfl(char);
char *getremote(char *);
void hardwareflow(const char *);
void help(char);
int hunt(char *);
char *interp(const char *);
void pipefile(char);
void pipeout(char);
int prompt(const char *, char *, size_t);
void xpwrite(int, char *, size_t);
void raw(void);
void sendchar(char);
void sendfile(char);
void setparity(const char *);
void setscript(void);
void shell(char);
void suspend(char);
void tandem(const char *);
void tipabort(const char *) __dead;
void tipout(void) __dead;
int ttysetup(speed_t);
void unraw(void);
void variable(char);
void vinit(void);
char *vinterp(char *, char);
void vlex(char *);
int vstring(const char *, char *);
void biz22_abort(void);
void biz22_disconnect(void);
int biz22f_dialer(char *, char *);
int biz22w_dialer(char *, char *);
void biz31_abort(void);
void biz31_disconnect(void);
int biz31f_dialer(char *, char *);
int biz31w_dialer(char *, char *);
void cour_abort(void);
int cour_dialer(char *, char *);
void cour_disconnect(void);
int df02_dialer(char *, char *);
int df03_dialer(char *, char *);
void df_abort(void);
void df_disconnect(void);
void dn_abort(void);
int dn_dialer(char *, char *);
void dn_disconnect(void);
void hay_abort(void);
int hay_dialer(char *, char *);
void hay_disconnect(void);
void t3000_abort(void);
int t3000_dialer(char *, char *);
void t3000_disconnect(void);
void v3451_abort(void);
int v3451_dialer(char *, char *);
void v3451_disconnect(void);
void v831_abort(void);
int v831_dialer(char *, char *);
void v831_disconnect(void);
void ven_abort(void);
int ven_dialer(char *, char *);
void ven_disconnect(void);