4.4BSD snapshot (revision 8.1); add 1993 to copyright
[unix-history] / usr / src / usr.bin / mail / temp.c
CommitLineData
761330fe 1/*
a12ff486
KB
2 * Copyright (c) 1980, 1993
3 * The Regents of the University of California. All rights reserved.
0c5f72fb 4 *
f15db449 5 * %sccs.include.redist.c%
761330fe
DF
6 */
7
acfc7e9b 8#ifndef lint
a12ff486 9static char sccsid[] = "@(#)temp.c 8.1 (Berkeley) %G%";
acfc7e9b 10#endif /* not lint */
ca3f0029
KS
11
12#include "rcv.h"
a0d23834
KB
13#include <errno.h>
14#include "extern.h"
ca3f0029
KS
15
16/*
17 * Mail -- a mail program
18 *
19 * Give names to all the temporary files that we will need.
20 */
21
435e8dff
KB
22char tempMail[24];
23char tempQuit[24];
24char tempEdit[24];
435e8dff
KB
25char tempResid[24];
26char tempMesg[24];
f629a181 27char *tmpdir;
ca3f0029 28
a0d23834 29void
ca3f0029
KS
30tinit()
31{
828615a1 32 register char *cp;
f629a181 33 int len;
ca3f0029 34
f629a181
KB
35 if ((tmpdir = getenv("TMPDIR")) == NULL)
36 tmpdir = _PATH_TMP;
37 else {
38 len = strlen(tmpdir);
39 if ((cp = malloc(len + 2)) == NULL) {
40 (void)fprintf(stderr, "mail: %s\n", strerror(errno));
41 exit (1);
42 }
43 (void)strcpy(cp, tmpdir);
44 cp[len] = '/';
45 cp[len + 1] = '\0';
46 tmpdir = cp;
47 }
48
49 strcpy(tempMail, tmpdir);
cc28d847 50 mktemp(strcat(tempMail, "RsXXXXXX"));
f629a181 51 strcpy(tempResid, tmpdir);
cc28d847 52 mktemp(strcat(tempResid, "RqXXXXXX"));
f629a181 53 strcpy(tempQuit, tmpdir);
cc28d847 54 mktemp(strcat(tempQuit, "RmXXXXXX"));
f629a181 55 strcpy(tempEdit, tmpdir);
cc28d847 56 mktemp(strcat(tempEdit, "ReXXXXXX"));
f629a181 57 strcpy(tempMesg, tmpdir);
cc28d847 58 mktemp(strcat(tempMesg, "RxXXXXXX"));
ca3f0029 59
f674e088
EW
60 /*
61 * It's okay to call savestr in here because main will
62 * do a spreserve() after us.
63 */
64 if (myname != NOSTR) {
65 if (getuserid(myname) < 0) {
95bf992b
KS
66 printf("\"%s\" is not a user of this system\n",
67 myname);
68 exit(1);
69 }
a073e085 70 } else {
f674e088
EW
71 if ((cp = username()) == NOSTR) {
72 myname = "ubluit";
ca3f0029
KS
73 if (rcvmode) {
74 printf("Who are you!?\n");
75 exit(1);
76 }
828615a1 77 } else
f674e088 78 myname = savestr(cp);
ca3f0029 79 }
e9d34eb2 80 if ((cp = getenv("HOME")) == NOSTR)
ca3f0029 81 cp = ".";
f674e088 82 homedir = savestr(cp);
f674e088 83 if (debug)
e9d34eb2 84 printf("user = %s, homedir = %s\n", myname, homedir);
ca3f0029 85}