1*30488Slepreau static char Sccsid[] = "@(#)username.c	1.2	02/15/87";
230484Slepreau /*
330484Slepreau 	Gets user's login name.
430484Slepreau 	Note that the argument must be an integer.
530484Slepreau 	Returns pointer to login name on success,
630484Slepreau 	pointer to string representation of used ID on failure.
730484Slepreau 
830484Slepreau 	Remembers user ID and login name for subsequent calls.
930484Slepreau */
1030484Slepreau 
username(uid)1130484Slepreau username(uid)
1230484Slepreau register int uid;
1330484Slepreau {
1430484Slepreau 	char pw[200];
1530484Slepreau 	static int ouid;
1630484Slepreau 	static char lnam[9], *lptr;
1730484Slepreau 	register int i;
1830484Slepreau 
1930484Slepreau 	if (ouid!=uid || ouid==0) {
2030484Slepreau 		if (getpw(uid,pw))
2130484Slepreau 			sprintf(lnam,"%d",uid);
2230484Slepreau 		else {
2330484Slepreau 			for (i=0; i<8; i++)
2430484Slepreau 				if ((lnam[i] = pw[i])==':') break;
2530484Slepreau 			lnam[i] = '\0';
2630484Slepreau 		}
2730484Slepreau 		lptr = lnam;
2830484Slepreau 		ouid = uid;
2930484Slepreau 	}
3030484Slepreau 	return(lptr);
3130484Slepreau }
32