]> git.cameronkatri.com Git - pw-darwin.git/blobdiff - pw/edgroup.c
Grammar and spelling fixes
[pw-darwin.git] / pw / edgroup.c
index 62c2efefe94044e7fa8e696d64ffafc5ebda2780..649a398a51c9b9e0e005691cd7490cbd70ac228e 100644 (file)
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- *     $FreeBSD$
  */
 
+#ifndef lint
+static const char rcsid[] =
+       "$Id: edgroup.c,v 1.6 1998/07/16 17:18:22 nate Exp $";
+#endif /* not lint */
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 #include <stdarg.h>
-#include <errno.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <pwd.h>
@@ -53,16 +55,20 @@ isingroup(char const * name, char **mem)
        return -1;
 }
 
-static char     groupfile[] = _PATH_GROUP;
-static char     grouptmp[] = _PATH_GROUP ".new";
-
 int
 editgroups(char *name, char **groups)
 {
        int             rc = 0;
        int             infd;
+       char            groupfile[MAXPATHLEN];
+       char            grouptmp[MAXPATHLEN];
+
+       strncpy(groupfile, getgrpath(_GROUP), MAXPATHLEN - 5);
+       groupfile[MAXPATHLEN - 5] = '\0';
+       strcpy(grouptmp, groupfile);
+       strcat(grouptmp, ".new");
 
-       if ((infd = open(groupfile, O_RDWR | O_CREAT | O_EXLOCK, 0644)) != -1) {
+       if ((infd = open(groupfile, O_RDWR | O_CREAT, 0644)) != -1) {
                FILE           *infp;
 
                if ((infp = fdopen(infd, "r+")) == NULL)
@@ -170,9 +176,9 @@ editgroups(char *name, char **groups)
                                                                                 */
                                                                                struct passwd  *pwd;
 
-                                                                               setpwent();
-                                                                               while ((pwd = getpwent()) != NULL && pwd->pw_gid != grp.gr_gid);
-                                                                               endpwent();
+                                                                               SETPWENT();
+                                                                               while ((pwd = GETPWENT()) != NULL && (gid_t)pwd->pw_gid != (gid_t)grp.gr_gid);
+                                                                               ENDPWENT();
                                                                                if (pwd == NULL)        /* No members at all */
                                                                                        continue;       /* Drop the group */
                                                                        }