1 static char Sccsid[] = "@(#)userdir.c	1.2	02/15/87";
2 /*
3 	Gets user's login directory.
4 	The argument must be an integer.
5 	Note the assumption about position of directory field in
6 	password file (no group id in password file).
7 	Returns pointer to login directory on success,
8 	0 on failure.
9         Remembers user ID and login directory for subsequent calls.
10 */
11 
12 userdir(uid)
13 register int uid;
14 {
15 	char pw[200];
16 	static int ouid;
17 	static char ldir[33];
18 	register int i;
19 	register char *cp;
20 
21 	if (ouid!=uid || ouid==0) {
22 		if (getpw(uid,pw))
23 			return(0);
24 		cp = pw;
25 		while (*cp++ != ':') ; /* login name */
26 		while (*cp++ != ':') ; /* passwd */
27 		while (*cp++ != ':') ; /* user ID */
28 		while (*cp++ != ':') ; /* comment */
29 		for (i=0; i<32; i++) {
30 			if ((ldir[i] = *cp)=='\0' || *cp==':') break;
31 			cp++;
32 		}
33 		ldir[i] = '\0';
34 	}
35 	return(ldir);
36 }
37