Index: fusl/src/passwd/fgetspent.c |
diff --git a/fusl/src/passwd/fgetspent.c b/fusl/src/passwd/fgetspent.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..47473bdb8cd84c0f31f57a89c11e654747589852 |
--- /dev/null |
+++ b/fusl/src/passwd/fgetspent.c |
@@ -0,0 +1,15 @@ |
+#include "pwf.h" |
+#include <pthread.h> |
+ |
+struct spwd *fgetspent(FILE *f) |
+{ |
+ static char *line; |
+ static struct spwd sp; |
+ size_t size = 0; |
+ struct spwd *res = 0; |
+ int cs; |
+ pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs); |
+ if (getline(&line, &size, f) >= 0 && __parsespent(line, &sp) >= 0) res = &sp; |
+ pthread_setcancelstate(cs, 0); |
+ return res; |
+} |