file reorg, pathnames.h, paths.h
[unix-history] / usr / src / usr.bin / mail / temp.c
index bbba26e..a5c7e90 100644 (file)
@@ -1,4 +1,23 @@
-#
+/*
+ * Copyright (c) 1980 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the University of California, Berkeley.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+#ifndef lint
+static char sccsid[] = "@(#)temp.c     5.12 (Berkeley) %G%";
+#endif /* not lint */
 
 #include "rcv.h"
 
 
 #include "rcv.h"
 
  * Give names to all the temporary files that we will need.
  */
 
  * 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()
 {
 
 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);
                        }
                        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 = ".";
                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);
 }
 }