1*17017Ssam /* compact.h 4.6 84/08/25 */ 210923Sshannon 311245Sshannon #if defined(vax) || defined(sun) 410923Sshannon typedef int longint; 510923Sshannon #else 610923Sshannon typedef long longint; 710923Sshannon #endif 810923Sshannon 912903Sedward #include <sys/param.h> 1010923Sshannon #include <sys/stat.h> 1112903Sedward #include <sys/dir.h> 1210923Sshannon #include <stdio.h> 1310923Sshannon 1410923Sshannon #define COMPACTED 017777 1517016Ssam #define PACKED 017437 1610923Sshannon 1710923Sshannon struct charac { 1811245Sshannon #if defined(vax) || defined(pdp11) 1917016Ssam char lob, hib; 2011245Sshannon #else 2117016Ssam char hib, lob; 2211245Sshannon #endif 2310923Sshannon }; 2410923Sshannon 2510923Sshannon union cio { 2617016Ssam struct charac chars; 2717016Ssam short integ; 2810923Sshannon }; 2910923Sshannon 3017016Ssam #define LLEAF 010 3117016Ssam #define RLEAF 04 3217016Ssam #define SEEN 02 3317016Ssam #define FBIT 01 3417016Ssam 3517016Ssam #define EF 0400 3617016Ssam #define NC 0401 3717016Ssam 3817016Ssam #define NF (NC+1) 3917016Ssam 4010923Sshannon struct fpoint { 4117016Ssam struct node *fp; 4217016Ssam int flags; 4317016Ssam } in[NF]; 4410923Sshannon 4510923Sshannon struct index { 4617016Ssam struct node *pt; 4717016Ssam struct index *next; 4817016Ssam } dir[2*NF], *head, *flist, *dirp, *dirq; 4910923Sshannon 5017016Ssam #define NEW flist; flist = flist->next 5117016Ssam 5210923Sshannon union treep { 5317016Ssam struct node *p; 5417016Ssam int ch; 5510923Sshannon }; 5610923Sshannon 5710923Sshannon struct node { 5817016Ssam struct fpoint fath; 59*17017Ssam struct son { 60*17017Ssam union treep sp; 61*17017Ssam struct index *top; 62*17017Ssam longint count; 63*17017Ssam } sons[2]; 6417016Ssam #define LEFT 0 6517016Ssam #define RIGHT 1 6617016Ssam } dict[NF], *bottom; 6710923Sshannon 6817016Ssam FILE *cfp; 6917016Ssam FILE *uncfp; 70