(xalloc_msg_memory_exhausted): Now char const[],
[gnulib.git] / lib / getgroups.c
index 717f90e..4e0d53a 100644 (file)
@@ -1,5 +1,5 @@
 /* provide consistent interface to getgroups for systems that don't allow N==0
-   Copyright (C) 1996 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1999 Free Software Foundation, Inc.
 
    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
 
 char *xmalloc ();
 
-/* On Ultrix 4.3, getgroups (0, 0) always fails.
-   This function handles that special case and lets the system-
-   provided function handle all others.  */
+/* On at least Ultrix 4.3 and NextStep 3.2, getgroups (0, 0) always fails.
+   On other systems, it returns the number of supplemental groups for the
+   process.  This function handles that special case and lets the system-
+   provided function handle all others. */
 
 int
-getgroups (n, group)
-     size_t n;
-     GETGROUPS_T *group;
+getgroups (size_t n, GETGROUPS_T *group)
 {
-  int ng;
+  int n_groups;
   GETGROUPS_T *gbuf;
 
 #undef getgroups
@@ -45,13 +44,13 @@ getgroups (n, group)
   while (1)
     {
       gbuf = (GETGROUPS_T *) xrealloc (gbuf, n * sizeof (GETGROUPS_T));
-      ng = getgroups (n, gbuf);
-      if (ng < n)
+      n_groups = getgroups (n, gbuf);
+      if (n_groups < n)
        break;
       n += 10;
     }
 
   free (gbuf);
 
-  return ng;
+  return n_groups;
 }