1*11245Sshannon /*	compact.h	4.2	83/02/23	*/
210923Sshannon 
310923Sshannon #define VAX 11/780
410923Sshannon 
510923Sshannon 
6*11245Sshannon #if defined(vax) || defined(sun)
710923Sshannon typedef int longint;
810923Sshannon #else
910923Sshannon typedef long longint;
1010923Sshannon #endif
1110923Sshannon 
1210923Sshannon #include <sys/types.h>
1310923Sshannon #include <sys/stat.h>
1410923Sshannon #include <stdio.h>
1510923Sshannon 
1610923Sshannon #define LNAME 80
1710923Sshannon #define NEW flist; flist = flist -> next
1810923Sshannon #define LLEAF 010
1910923Sshannon #define RLEAF 04
2010923Sshannon #define SEEN 02
2110923Sshannon #define FBIT 01
2210923Sshannon #define COMPACTED 017777
2310923Sshannon #define PACKED 017437
2410923Sshannon #define EF 0400
2510923Sshannon #define NC 0401
2610923Sshannon 
2710923Sshannon struct charac {
28*11245Sshannon #if defined(vax) || defined(pdp11)
29*11245Sshannon 	char lob, hib;
30*11245Sshannon #else
31*11245Sshannon 	char hib, lob;
32*11245Sshannon #endif
3310923Sshannon };
3410923Sshannon 
3510923Sshannon union cio {
3610923Sshannon 	struct charac chars;
37*11245Sshannon 	short integ;
3810923Sshannon };
3910923Sshannon 
4010923Sshannon struct fpoint {
4110923Sshannon 	struct node *fp;
4210923Sshannon 	int flags;
4310923Sshannon } in [258];
4410923Sshannon 
4510923Sshannon struct index {
4610923Sshannon 	struct node *pt;
4710923Sshannon 	struct index *next;
4810923Sshannon } dir [514], *head, *flist, *dirp, *dirq;
4910923Sshannon 
5010923Sshannon union treep {
5110923Sshannon 	struct node *p;
5210923Sshannon 	int ch;
5310923Sshannon };
5410923Sshannon 
5510923Sshannon struct node {
5610923Sshannon 	struct fpoint fath;
5710923Sshannon 	union treep sp [2];
5810923Sshannon 	struct index *top [2];
5910923Sshannon 	longint count [2];
6010923Sshannon } dict [258], *bottom;
6110923Sshannon 
6210923Sshannon longint oc;
6310923Sshannon 
6410923Sshannon FILE *cfp, *uncfp;
6510923Sshannon 
6610923Sshannon struct stat status;
67