summaryrefslogtreecommitdiff
path: root/lib/getugroups.c
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>1999-03-09 16:07:49 +0000
committerJim Meyering <jim@meyering.net>1999-03-09 16:07:49 +0000
commit1ef07171f7e8abdb703651a0f6c81e17559b3720 (patch)
tree2c70e7f2f1c299148e8ffeb9e6419758683b2965 /lib/getugroups.c
parenta52b3661049d06e669e3038c613e62fe4c96b4ce (diff)
downloadgnulib-1ef07171f7e8abdb703651a0f6c81e17559b3720.tar.gz
(getugroups): Take new parameter, gid.
Add gid to the list of groups. From Ulrich Drepper.
Diffstat (limited to 'lib/getugroups.c')
-rw-r--r--lib/getugroups.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/getugroups.c b/lib/getugroups.c
index afa425b6e5..01d36ff109 100644
--- a/lib/getugroups.c
+++ b/lib/getugroups.c
@@ -1,5 +1,5 @@
/* getugroups.c -- return a list of the groups a user is in
- Copyright (C) 1990, 1991, 1998 Free Software Foundation.
+ Copyright (C) 1990, 1991, 1998, 1999 Free Software Foundation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -45,12 +45,16 @@ struct group *getgrent ();
the current process. */
int
-getugroups (int maxcount, GETGROUPS_T *grouplist, char *username)
+getugroups (int maxcount, GETGROUPS_T *grouplist, char *username, gid_t gid)
{
struct group *grp;
register char **cp;
register int count = 0;
+ if (maxcount != 0)
+ grouplist[count] = gid;
+ ++count;
+
setgrent ();
while ((grp = getgrent ()) != 0)
for (cp = grp->gr_mem; *cp; ++cp)