*p = tolower (*p);
*p = _tolower (*p);
__ivaliduser2(hostf, raddr, luser, ruser, rhost)	FILE *hostf;	u_int32_t raddr;	const char *luser, *ruser, *rhost;{    register const char *user;    register char *p;    int hcheck, ucheck;    char *buf = NULL;    size_t bufsize = 0;    int retval = -1;    while (__getline (&buf, &bufsize, hostf) > 0) {	buf[bufsize - 1] = '\0'; /* Make sure it's terminated.  */        p = buf;	/* Skip empty or comment lines */	if (__isempty (p)) {	    continue;	}	/* Skip lines that are too long. */	if (strchr (p, '\n') == NULL) {	    int ch = getc (hostf);	    while (ch != '\n' && ch != EOF)		ch = getc (hostf);	    continue;	}	for (;*p && !isspace(*p); ++p) {	    *p = tolower (*p);	}	/* Next we want to find the permitted name for the remote user.  */	if (*p == ' ' || *p == '\t') {	    /* <nul> terminate hostname and skip spaces */	    for (*p++='\0'; *p && isspace (*p); ++p);	    user = p;                   /* this is the user's name */	    while (*p && !isspace (*p))		++p;                    /* find end of user's name */	} else	    user = p;	*p = '\0';              /* <nul> terminate username (+host?) */	/* buf -> host(?) ; user -> username(?) */	/* First check host part */	hcheck = __icheckhost (raddr, buf, rhost);	if (hcheck < 0)	    break;	if (hcheck) {	    /* Then check user part */	    if (! (*user))		user = luser;	    ucheck = __icheckuser (user, ruser);	    /* Positive 'host user' match? */	    if (ucheck > 0) {		retval = 0;		break;	    }	    /* Negative 'host -user' match? */	    if (ucheck < 0)		break;	    /* Neither, go on looking for match */	}    }    if (buf != NULL)      free (buf);    return retval;}