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