1*3503Seric # include	"../hdr/defines.h"
2*3503Seric 
3*3503Seric SCCSID(@(#)pf_ab	2.1.1.1);
4*3503Seric 
5*3503Seric pf_ab(s,pp,all)
6*3503Seric char *s;
7*3503Seric register struct pfile *pp;
8*3503Seric int all;
9*3503Seric {
10*3503Seric 	register char *p;
11*3503Seric 	register int i;
12*3503Seric 	extern char *Datep;
13*3503Seric 	char *xp;
14*3503Seric 
15*3503Seric 	xp = p = alloca(size(s));
16*3503Seric 	copy(s,p);
17*3503Seric 	for (; *p; p++)
18*3503Seric 		if (*p == '\n') {
19*3503Seric 			*p = 0;
20*3503Seric 			break;
21*3503Seric 		}
22*3503Seric 	p = xp;
23*3503Seric 	p = sid_ab(p,&pp->pf_gsid);
24*3503Seric 	++p;
25*3503Seric 	p = sid_ab(p,&pp->pf_nsid);
26*3503Seric 	++p;
27*3503Seric 	i = index(p," ");
28*3503Seric 	pp->pf_user[0] = 0;
29*3503Seric 	if (((unsigned)i) < 8) {
30*3503Seric 		move(p,pp->pf_user,i);
31*3503Seric 		pp->pf_user[i] = 0;
32*3503Seric 	}
33*3503Seric 	else
34*3503Seric 		fatal("bad p-file format (co17)");
35*3503Seric 	p = p + i + 1;
36*3503Seric 	date_ab(p,&pp->pf_date);
37*3503Seric 	p = Datep;
38*3503Seric 	pp->pf_ilist = 0;
39*3503Seric 	pp->pf_elist = 0;
40*3503Seric 	if (!all || !*p)
41*3503Seric 		return;
42*3503Seric 	p =+ 2;
43*3503Seric 	xp = alloc(size(p));
44*3503Seric 	copy(p,xp);
45*3503Seric 	p = xp;
46*3503Seric 	if (*p == 'i') {
47*3503Seric 		pp->pf_ilist = ++p;
48*3503Seric 		for (; *p; p++)
49*3503Seric 			if (*p == ' ') {
50*3503Seric 				*p++ = 0;
51*3503Seric 				p++;
52*3503Seric 				break;
53*3503Seric 			}
54*3503Seric 	}
55*3503Seric 	if (*p == 'x')
56*3503Seric 		pp->pf_elist = ++p;
57*3503Seric }
58