#

/*
 * Mail -- a mail program
 *
 * EECS Cory 11/70 Version 7.0
 *
 * Local routines that are installation dependent.
 * All fiddlers please note:  if you make careful note of
 * what you change here, I will incorporate your changes and
 * you won't have to remake them each release.
 */

#include "rcv.h"
#include <pwd.h>

/*
 * Locate the user's mailbox file (ie, the place where new, unread
 * mail is queued).  At Cory, it is in /usr/spool/mail/name.
 */

findmail()
{
	register char *cp;

	cp = copy("/usr/spool/mail/", mailname);
	copy(myname, cp);
}

/*
 * Get rid of the queued mail.
 */

demail()
{
	register int p;
	
	close(creat(mailname, 0666));
	alter(mailname);
}

/*
 * Mail file lock / unlock.
 * Insignificant on Cory version 7, since /usr/spool/mail not
 * generally writable.
 */

lock(name)
	char *name;
{

	return(0);
}

unlock()
{

	return(0);
}

/*
 * Discover user login name.
 */

username(uid, namebuf)
	char namebuf[];
{
	register char *np;

	if (uid == getuid() && (np = getenv("USER")) != NOSTR) {
		strncpy(namebuf, np, 9);
		return(0);
	}
	return(getname(uid, namebuf));
}

/*
 * Discover user name from uid.  Uses the fancy hashed passwd
 * data base available only on Cory Unix.
 */

getname(uid, namebuf)
	char namebuf[];
{
	struct passwd *gp;
	struct passwd *getpwuid();

	gp = getpwuid(uid);
	if (gp == (struct passwd *) 0)
		return(-1);
	strcpy(namebuf, gp->pw_name);
	return(0);
}

/*
 * Cory hall getuserid
 */

getuserid(name)
	char name[];
{
	struct passwd *gp;
	struct passwd *getpwnam();

	if ((gp = getpwnam(name)) == (struct passwd *) 0)
		return(-1);
	return(gp->pw_uid);
}
