- /* Find the selected user (if appropriate) */
- if (whichApp==CHOWN_APP) {
- uid = my_getpwnam(*argv);
- if (uid == -1) {
- fprintf(stderr, "%s: Unknown user name: %s\n", invocationName, *argv);
- exit( FALSE);
- }
+ /* Find the selected group */
+ if (whichApp == CHGRP_APP) {
+ groupName = *argv;
+ gid = strtoul(groupName, &p, 10); /* maybe it's already numeric */
+ if (groupName == p)
+ gid = my_getgrnam(groupName);
+ if (gid == -1)
+ goto bad_group;
+ } else {
+ groupName = strchr(*argv, '.');
+ if (groupName == NULL)
+ groupName = strchr(*argv, ':');
+ if (groupName) {
+ *groupName++ = '\0';
+ gid = strtoul(groupName, &p, 10);
+ if (groupName == p)
+ gid = my_getgrnam(groupName);
+ if (gid == -1)
+ goto bad_group;
+ } else
+ gid = -1;
+ }
+
+
+ /* Find the selected user (if appropriate) */
+ if (whichApp == CHOWN_APP) {
+ uid = strtoul(*argv, &p, 10); /* if numeric ... */
+ if (*argv == p)
+ uid = my_getpwnam(*argv);
+ if (uid == -1) {
+ fatalError( "%s: unknown user name: %s\n",
+ invocationName, *argv);
+ }
+ }