1*6e469e77Ssam /*	compact.h	4.6	84/08/25	*/
2ed2a4b30Sshannon 
33f163275Sshannon #if defined(vax) || defined(sun)
4ed2a4b30Sshannon typedef int longint;
5ed2a4b30Sshannon #else
6ed2a4b30Sshannon typedef long longint;
7ed2a4b30Sshannon #endif
8ed2a4b30Sshannon 
92ff865d3Sedward #include <sys/param.h>
10ed2a4b30Sshannon #include <sys/stat.h>
112ff865d3Sedward #include <sys/dir.h>
12ed2a4b30Sshannon #include <stdio.h>
13ed2a4b30Sshannon 
14ed2a4b30Sshannon #define COMPACTED 017777
15ed2a4b30Sshannon #define PACKED	017437
16ed2a4b30Sshannon 
17ed2a4b30Sshannon struct charac {
183f163275Sshannon #if defined(vax) || defined(pdp11)
193f163275Sshannon 	char	lob, hib;
203f163275Sshannon #else
213f163275Sshannon 	char	hib, lob;
223f163275Sshannon #endif
23ed2a4b30Sshannon };
24ed2a4b30Sshannon 
25ed2a4b30Sshannon union cio {
26ed2a4b30Sshannon 	struct	charac chars;
273f163275Sshannon 	short	integ;
28ed2a4b30Sshannon };
29ed2a4b30Sshannon 
303eab18b4Ssam #define LLEAF	010
313eab18b4Ssam #define RLEAF	04
323eab18b4Ssam #define SEEN	02
333eab18b4Ssam #define FBIT	01
343eab18b4Ssam 
353eab18b4Ssam #define EF	0400
363eab18b4Ssam #define NC	0401
373eab18b4Ssam 
383eab18b4Ssam #define	NF	(NC+1)
393eab18b4Ssam 
40ed2a4b30Sshannon struct fpoint {
41ed2a4b30Sshannon 	struct	node *fp;
42ed2a4b30Sshannon 	int	flags;
433eab18b4Ssam } in[NF];
44ed2a4b30Sshannon 
45ed2a4b30Sshannon struct index {
46ed2a4b30Sshannon 	struct	node *pt;
47ed2a4b30Sshannon 	struct	index *next;
483eab18b4Ssam } dir[2*NF], *head, *flist, *dirp, *dirq;
493eab18b4Ssam 
503eab18b4Ssam #define	NEW	flist; flist = flist->next
51ed2a4b30Sshannon 
52ed2a4b30Sshannon union treep {
53ed2a4b30Sshannon 	struct	node *p;
54ed2a4b30Sshannon 	int	ch;
55ed2a4b30Sshannon };
56ed2a4b30Sshannon 
57ed2a4b30Sshannon struct node {
58ed2a4b30Sshannon 	struct	fpoint fath;
59*6e469e77Ssam 	struct son {
60*6e469e77Ssam 		union	treep sp;
61*6e469e77Ssam 		struct	index *top;
62*6e469e77Ssam 		longint	count;
63*6e469e77Ssam 	} sons[2];
643eab18b4Ssam #define	LEFT	0
653eab18b4Ssam #define	RIGHT	1
663eab18b4Ssam } dict[NF], *bottom;
67ed2a4b30Sshannon 
683eab18b4Ssam FILE	*cfp;
693eab18b4Ssam FILE	*uncfp;
70