-#
+/*
+ * Copyright (c) 1980 Regents of the University of California.
+ * All rights reserved.
+ *
+ * %sccs.include.redist.c%
+ */
+
+#ifndef lint
+static char sccsid[] = "@(#)temp.c 5.14 (Berkeley) %G%";
+#endif /* not lint */
#include "rcv.h"
* Give names to all the temporary files that we will need.
*/
-static char *SccsId = "@(#)temp.c 1.2 %G%";
-
-char tempMail[14];
-char tempQuit[14];
-char tempEdit[14];
-char tempSet[14];
-char tempResid[14];
-char tempMesg[14];
+char tempMail[24];
+char tempQuit[24];
+char tempEdit[24];
+char tempSet[24];
+char tempResid[24];
+char tempMesg[24];
tinit()
{
- register char *cp, *cp2;
- char uname[PATHSIZE];
- register int err = 0;
- register int pid;
+ register char *cp;
- pid = getpid();
- sprintf(tempMail, "/tmp/Rs%05d", pid);
- sprintf(tempResid, "/tmp/Rq%05d", pid);
- sprintf(tempQuit, "/tmp/Rm%05d", pid);
- sprintf(tempEdit, "/tmp/Re%05d", pid);
- sprintf(tempSet, "/tmp/Rx%05d", pid);
- sprintf(tempMesg, "/tmp/Rx%05d", pid);
+ strcpy(tempMail, _PATH_TMP);
+ mktemp(strcat(tempMail, "RsXXXXXX"));
+ strcpy(tempResid, _PATH_TMP);
+ mktemp(strcat(tempResid, "RqXXXXXX"));
+ strcpy(tempQuit, _PATH_TMP);
+ mktemp(strcat(tempQuit, "RmXXXXXX"));
+ strcpy(tempEdit, _PATH_TMP);
+ mktemp(strcat(tempEdit, "ReXXXXXX"));
+ strcpy(tempSet, _PATH_TMP);
+ mktemp(strcat(tempSet, "RxXXXXXX"));
+ strcpy(tempMesg, _PATH_TMP);
+ mktemp(strcat(tempMesg, "RxXXXXXX"));
- if (strlen(myname) != 0) {
- uid = getuserid(myname);
- if (uid == -1)
- goto youlose;
- }
- else {
- uid = getuid() & UIDMASK;
- if (username(uid, uname) < 0) {
- copy("ubluit", myname);
-youlose:
- err++;
+ /*
+ * It's okay to call savestr in here because main will
+ * do a spreserve() after us.
+ */
+ if (myname != NOSTR) {
+ if (getuserid(myname) < 0) {
+ printf("\"%s\" is not a user of this system\n",
+ myname);
+ exit(1);
+ }
+ } else {
+ if ((cp = username()) == NOSTR) {
+ myname = "ubluit";
if (rcvmode) {
printf("Who are you!?\n");
exit(1);
}
- }
- copy(uname, myname);
+ } else
+ myname = savestr(cp);
}
- mailname = mailspace;
- cp = value("HOME");
- if (cp == NOSTR)
+ if ((cp = getenv("HOME")) == NOSTR)
cp = ".";
- copy(cp, homedir);
- findmail();
- cp = copy(homedir, mbox);
- copy("/mbox", cp);
- cp = copy(homedir, mailrc);
- copy("/.mailrc", cp);
- cp = copy(homedir, deadletter);
- copy("/dead.letter", cp);
- if (debug) {
- printf("uid = %d, user = %s, mailname = %s\n",
- uid, myname, mailname);
- printf("deadletter = %s, mailrc = %s, mbox = %s\n",
- deadletter, mailrc, mbox);
- }
+ homedir = savestr(cp);
+ if (debug)
+ printf("user = %s, homedir = %s\n", myname, homedir);
}