Commit | Line | Data |
---|---|---|
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 | 9 | static 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 |
22 | char tempMail[24]; |
23 | char tempQuit[24]; | |
24 | char tempEdit[24]; | |
435e8dff KB |
25 | char tempResid[24]; |
26 | char tempMesg[24]; | |
f629a181 | 27 | char *tmpdir; |
ca3f0029 | 28 | |
a0d23834 | 29 | void |
ca3f0029 KS |
30 | tinit() |
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 | } |