- patch from Denis Vlasenko to add and use bb_xopen3()
[oweals/busybox.git] / coreutils / chgrp.c
index 2f3fa4197a71dece7205e7848c8d3937f0f25e02..70ac672c2b50801d8a6f553d5422c49daef33b30 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Mini chgrp implementation for busybox
  *
- * Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
+ * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
  *
  * 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
@@ -48,7 +48,6 @@ int chgrp_main(int argc, char **argv)
        long gid;
        int recursiveFlag;
        int retval = EXIT_SUCCESS;
-       char *p;
 
        recursiveFlag = bb_getopt_ulflags(argc, argv, "R");
 
@@ -59,15 +58,12 @@ int chgrp_main(int argc, char **argv)
        argv += optind;
 
        /* Find the selected group */
-       gid = strtoul(*argv, &p, 10);   /* maybe it's already numeric */
-       if (*p || (p == *argv)) {               /* trailing chars or nonnumeric */
-               gid = my_getgrnam(*argv);
-       }
+       gid = get_ug_id(*argv, bb_xgetgrnam);
        ++argv;
 
        /* Ok, ready to do the deed now */
        do {
-               if (! recursive_action (*argv, recursiveFlag, FALSE, FALSE, 
+               if (! recursive_action (*argv, recursiveFlag, FALSE, FALSE,
                                                                fileAction, fileAction, &gid)) {
                        retval = EXIT_FAILURE;
                }