59 lines
932 B
C
59 lines
932 B
C
# include "../hdr/defines.h"
|
|
|
|
SCCSID(@(#)pf_ab.c 1.1 94/10/31 SMI); /* from System III 5.1 */
|
|
|
|
pf_ab(s,pp,all)
|
|
char *s;
|
|
register struct pfile *pp;
|
|
int all;
|
|
{
|
|
register char *p;
|
|
register int i;
|
|
extern char *Datep, *sid_ab();
|
|
char *xp;
|
|
char buf[BUFSIZ];
|
|
|
|
xp = p = buf;
|
|
copy(s,p);
|
|
for (; *p; p++)
|
|
if (*p == '\n') {
|
|
*p = 0;
|
|
break;
|
|
}
|
|
p = xp;
|
|
p = sid_ab(p,&pp->pf_gsid);
|
|
++p;
|
|
p = sid_ab(p,&pp->pf_nsid);
|
|
++p;
|
|
i = sindex(p," ");
|
|
pp->pf_user[0] = 0;
|
|
if (((unsigned)i) < LOGSIZE) {
|
|
move(p,pp->pf_user,i);
|
|
pp->pf_user[i] = 0;
|
|
}
|
|
else
|
|
fatal("bad p-file format (co17)");
|
|
p = p + i + 1;
|
|
date_ab(p,&pp->pf_date);
|
|
p = Datep;
|
|
pp->pf_ilist = 0;
|
|
pp->pf_elist = 0;
|
|
if (!all || !*p)
|
|
return;
|
|
p += 2;
|
|
xp = (char *)alloc(size(p));
|
|
copy(p,xp);
|
|
p = xp;
|
|
if (*p == 'i') {
|
|
pp->pf_ilist = ++p;
|
|
for (; *p; p++)
|
|
if (*p == ' ') {
|
|
*p++ = 0;
|
|
p++;
|
|
break;
|
|
}
|
|
}
|
|
if (*p == 'x')
|
|
pp->pf_elist = ++p;
|
|
}
|