master
 1#include "pwf.h"
 2#include <pthread.h>
 3
 4struct spwd *fgetspent(FILE *f)
 5{
 6	static char *line;
 7	static struct spwd sp;
 8	size_t size = 0;
 9	struct spwd *res = 0;
10	int cs;
11	pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
12	if (getline(&line, &size, f) >= 0 && __parsespent(line, &sp) >= 0) res = &sp;
13	pthread_setcancelstate(cs, 0);
14	return res;
15}