1219b2ee8SDavid du Colombier #include <u.h>
2219b2ee8SDavid du Colombier #include <libc.h>
3219b2ee8SDavid du Colombier #include <bio.h>
4219b2ee8SDavid du Colombier #include <ctype.h>
5*9a747e4fSDavid du Colombier #include "authcmdlib.h"
6219b2ee8SDavid du Colombier
7219b2ee8SDavid du Colombier void
wrbio(char * file,Acctbio * a)8219b2ee8SDavid du Colombier wrbio(char *file, Acctbio *a)
9219b2ee8SDavid du Colombier {
107dd7cddfSDavid du Colombier char buf[1024];
11219b2ee8SDavid du Colombier int i, fd, n;
12219b2ee8SDavid du Colombier
13219b2ee8SDavid du Colombier fd = open(file, OWRITE);
14219b2ee8SDavid du Colombier if(fd < 0)
15219b2ee8SDavid du Colombier error("can't open %s", file);
16219b2ee8SDavid du Colombier if(seek(fd, 0, 2) < 0)
17219b2ee8SDavid du Colombier error("can't seek %s", file);
18219b2ee8SDavid du Colombier
197dd7cddfSDavid du Colombier if(a->postid == 0)
207dd7cddfSDavid du Colombier a->postid = "";
21219b2ee8SDavid du Colombier if(a->name == 0)
227dd7cddfSDavid du Colombier a->name = "";
23219b2ee8SDavid du Colombier if(a->dept == 0)
247dd7cddfSDavid du Colombier a->dept = "";
25219b2ee8SDavid du Colombier if(a->email[0] == 0)
26219b2ee8SDavid du Colombier a->email[0] = strdup(a->user);
27219b2ee8SDavid du Colombier
28219b2ee8SDavid du Colombier n = 0;
297dd7cddfSDavid du Colombier n += snprint(buf+n, sizeof(buf)-n, "%s|%s|%s|%s",
307dd7cddfSDavid du Colombier a->user, a->postid, a->name, a->dept);
317dd7cddfSDavid du Colombier for(i = 0; i < Nemail; i++){
32219b2ee8SDavid du Colombier if(a->email[i] == 0)
33219b2ee8SDavid du Colombier break;
347dd7cddfSDavid du Colombier n += snprint(buf+n, sizeof(buf)-n, "|%s", a->email[i]);
35219b2ee8SDavid du Colombier }
367dd7cddfSDavid du Colombier n += snprint(buf+n, sizeof(buf)-n, "\n");
37219b2ee8SDavid du Colombier
387dd7cddfSDavid du Colombier write(fd, buf, n);
39219b2ee8SDavid du Colombier close(fd);
40219b2ee8SDavid du Colombier }
41