warn(tbuf);
warn("%s", tbuf);
userinfo(pn, pw)	PERSON *pn;	struct passwd *pw;{	char *p;	char *bp, name[1024];	struct stat sb;	pn->realname = pn->office = pn->officephone = pn->homephone = NULL;	pn->uid = pw->pw_uid;	pn->name = strdup(pw->pw_name);	pn->dir = strdup(pw->pw_dir);	pn->shell = strdup(pw->pw_shell);	(void)strncpy(bp = tbuf, pw->pw_gecos, sizeof(tbuf));	/* ampersands get replaced by the login name */	if (!(p = strsep(&bp, ",")))		return;	expandusername(p, pw->pw_name, name, sizeof(name));	pn->realname = strdup(name);	pn->office = ((p = strsep(&bp, ",")) && *p) ?	    strdup(p) : NULL;	pn->officephone = ((p = strsep(&bp, ",")) && *p) ?	    strdup(p) : NULL;	pn->homephone = ((p = strsep(&bp, ",")) && *p) ?	    strdup(p) : NULL;	(void)snprintf(tbuf, sizeof(tbuf), "%s/%s", _PATH_MAILSPOOL,	    pw->pw_name);	pn->mailrecv = -1;		/* -1 == not_valid */	if (stat(tbuf, &sb) < 0) {		if (errno != ENOENT) {			warn(tbuf);			return;		}	} else if (sb.st_size != 0) {		pn->mailrecv = sb.st_mtime;		pn->mailread = sb.st_atime;	}}