- if (uid == -1) {
- if (pwfile != NULL)
- fclose(pwfile);
- pwfile = NULL;
- return(0);
- }
- if (pwfile == NULL && (pwfile = fopen(pwname, "r")) == NULL)
- return(-1);
- rewind(pwfile);
- while (fgets(linebuf, BUFSIZ, pwfile) != NULL)
- if (pweval(linebuf) == uid) {
- if (linebuf[0] != '\0')
- linebuf[strlen(linebuf)-1] = '\0';
- return(0);
- }
- return(-1);
-}
-
-/*
- * Look for passwd line belonging to 'name'
- */
-
-getpwnam(name, linebuf)
- char name[], linebuf[];
-{
- register char *cp, *cp2;
-
- if (name == NOSTR) {
- if (pwfile != NULL)
- fclose(pwfile);
- pwfile = NULL;
- return(0);
- }
- if (pwfile == NULL && (pwfile = fopen(pwname, "r")) == NULL) {
- perror(pwname);
- return(-1);
- }
- rewind(pwfile);
- while (fgets(linebuf, BUFSIZ, pwfile) != NULL) {
- cp = linebuf;
- cp2 = name;
- while (*cp2++ == *cp++)
- ;
- if (*--cp == ':' && *--cp2 == 0)
- return(0);
- }
- return(-1);