#include "local.h" #define C const #define B 512 /* B must be divisible by 32.*/ #define ss (B/32+1) #define P 56 /* P, above can at least be from 33 thru 64*/ #define acl 48 #define insize 32 long Rnd(); extern long seed; #include #include typedef unsigned long b32; typedef unsigned int b16; typedef b32 acc[acl]; typedef struct{b32 a[ss];} str; typedef unsigned char uchar; #define Nsize 1000 #define Lbug 0 #if Lbug #include extern ino_t inode; #endif typedef struct {b32 sig; b32 Bl; #if Lbug ino_t inode; #endif } sx; extern sx * LM; extern int Eof; typedef struct{FILE * in; uchar name[Nsize]; b32 sig, offsetBi; b32 giBlc;} fport; typedef struct{FILE * in; uchar name[Nsize]; char buf[1024]; b32 Bln;} sstream; void sopen(sstream * s, uchar C *); void sclose(sstream * s); int sread(uchar *, sstream *, b32); int locate(fport * C p, sx C m, fport C * C); void zacc(b32 * x); void zstr(str * x); void sl(str * x); void sla(acc ac, int c); void pbw(b32 x, int o); typedef struct{long l, r;} te; extern te * head, * tail; extern long sdp; extern FILE * out; void bitch(char C *); void fl(FILE *, b32); void pbw(b32 x, int o); void pstr(str * s); b32 pw(char * s, b32 u); void pW(void); void finit(void); void init(void); int New(b32); void open_p(void); void close_p(void); extern char * suppr; C char * cen(char C *); extern b32 mcnt, chr_cnt, fcnt, saved; extern char * froot; void ex(int); extern b32 GBlc; void finish(void); extern char * log_crsr, * file_hook; void w_log(b32); b32 r_log(void); void init_FM(void); int vernier(fport *, b32, fport C *); void Stat(void); void * core(size_t m, char * who); void find_match(void); void sort(void); void forget(fport C *, b32, b32); char * qs(uchar C *); int ret(int); #define Rep(c,s,l) #if L #define LA << #define SA >> #else #define LA >> #define SA << #endif /* .... Stuff below is for debugging only */ extern b32 work; void X8pr(void); void rev(char * b, int c); b32 rW(b32); extern char * bugName;