/* Returns an entry from the /etc/passwd file. The first time it is called it
* opens the file and returns the first entry; each successive call returns
* the next entry, or nil if the end of the file has been reached.
*
* To close the file when processing is complete, call endpwent.
*
* Each entry is returned as a Struct::Passwd:
*
* - Passwd#name contains the short login name of the user as a String.
*
* - Passwd#passwd contains the encrypted password of the user as a String.
* an 'x' is returned if shadow passwords are in use. An '*' is returned
* if the user cannot log in using a password.
*
* - Passwd#uid contains the integer user ID (uid) of the user.
*
* - Passwd#gid contains the integer group ID (gid) of the user's primary group.
*
* - Passwd#gecos contains a longer String description of the user, such as
* a full name. Some Unix systems provide structured information in the
* gecos field, but this is system-dependent.
*
* - Passwd#dir contains the path to the home directory of the user as a String.
*
* - Passwd#shell contains the path to the login shell of the user as a String.
*/
static VALUE
etc_getpwent(VALUE obj)
{
#ifdef HAVE_GETPWENT
struct passwd *pw;
if (pw = getpwent()) {
return setup_passwd(pw);
}
#endif
return Qnil;
}