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