- for (; *str; str++)
- if (!ISDIGIT (*str))
- return 0;
- return 1;
-}
-
-/* Extract from NAME, which has the form "[user][:.][group]",
- a USERNAME, UID U, GROUPNAME, and GID G.
- Either user or group, or both, must be present.
- If the group is omitted but the ":" separator is given,
- use the given user's login group.
- If SPEC_ARG contains a `:', then use that as the separator, ignoring
- any `.'s. If there is no `:', but there is a `.', then first look
- up the entire SPEC_ARG as a login name. If that look-up fails, then
- try again interpreting the `.' as a separator.
-
- USERNAME and GROUPNAME will be in newly malloc'd memory.
- Either one might be NULL instead, indicating that it was not
- given and the corresponding numeric ID was left unchanged.