add fgetgrent function

based on patch by Isaac Dunham, moved to its own file to avoid
increasing bss on static linked programs not using this nonstandard
function but using the standard getgrent function, and vice versa.
This commit is contained in:
Rich Felker 2013-02-17 13:21:56 -05:00
parent b9e08308f4
commit cac872957e
2 changed files with 13 additions and 0 deletions

View File

@ -30,6 +30,10 @@ struct group *getgrent(void);
void endgrent(void);
void setgrent(void);
#ifdef _GNU_SOURCE
struct group *fgetgrent(FILE *stream);
#endif
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
int getgrouplist(const char *, gid_t, gid_t *, int *);
int setgroups(size_t, const gid_t *);

9
src/passwd/fgetgrent.c Normal file
View File

@ -0,0 +1,9 @@
#include "pwf.h"
struct group *fgetgrent(FILE *f)
{
static char *line, **mem;
static struct group gr;
size_t size=0, nmem=0;
return __getgrent_a(f, &gr, &line, &size, &mem, &nmem);
}