Deleted Added
full compact
temp.c (8874) temp.c (27643)
1/*
2 * Copyright (c) 1980, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * 3. All advertising materials mentioning features or use of this software
14 * must display the following acknowledgement:
15 * This product includes software developed by the University of
16 * California, Berkeley and its contributors.
17 * 4. Neither the name of the University nor the names of its contributors
18 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#ifndef lint
1/*
2 * Copyright (c) 1980, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * 3. All advertising materials mentioning features or use of this software
14 * must display the following acknowledgement:
15 * This product includes software developed by the University of
16 * California, Berkeley and its contributors.
17 * 4. Neither the name of the University nor the names of its contributors
18 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#ifndef lint
35#if 0
35static char sccsid[] = "@(#)temp.c 8.1 (Berkeley) 6/6/93";
36static char sccsid[] = "@(#)temp.c 8.1 (Berkeley) 6/6/93";
37#endif
38static const char rcsid[] =
39 "$Id$";
36#endif /* not lint */
37
38#include "rcv.h"
40#endif /* not lint */
41
42#include "rcv.h"
39#include <errno.h>
43#include
40#include "extern.h"
41
42/*
43 * Mail -- a mail program
44 *
45 * Give names to all the temporary files that we will need.
46 */
47
48char tempMail[24];
49char tempQuit[24];
50char tempEdit[24];
51char tempResid[24];
52char tempMesg[24];
53char *tmpdir;
54
55void
56tinit()
57{
58 register char *cp;
59 int len;
60
61 if ((tmpdir = getenv("TMPDIR")) == NULL)
62 tmpdir = _PATH_TMP;
63 else {
64 len = strlen(tmpdir);
44#include "extern.h"
45
46/*
47 * Mail -- a mail program
48 *
49 * Give names to all the temporary files that we will need.
50 */
51
52char tempMail[24];
53char tempQuit[24];
54char tempEdit[24];
55char tempResid[24];
56char tempMesg[24];
57char *tmpdir;
58
59void
60tinit()
61{
62 register char *cp;
63 int len;
64
65 if ((tmpdir = getenv("TMPDIR")) == NULL)
66 tmpdir = _PATH_TMP;
67 else {
68 len = strlen(tmpdir);
65 if ((cp = malloc(len + 2)) == NULL) {
66 (void)fprintf(stderr, "mail: %s\n", strerror(errno));
67 exit (1);
68 }
69 if ((cp = malloc(len + 2)) == NULL)
70 err(1, NULL);
69 (void)strcpy(cp, tmpdir);
70 cp[len] = '/';
71 cp[len + 1] = '\0';
72 tmpdir = cp;
73 }
74
75 strcpy(tempMail, tmpdir);
76 mktemp(strcat(tempMail, "RsXXXXXX"));
77 strcpy(tempResid, tmpdir);
78 mktemp(strcat(tempResid, "RqXXXXXX"));
79 strcpy(tempQuit, tmpdir);
80 mktemp(strcat(tempQuit, "RmXXXXXX"));
81 strcpy(tempEdit, tmpdir);
82 mktemp(strcat(tempEdit, "ReXXXXXX"));
83 strcpy(tempMesg, tmpdir);
84 mktemp(strcat(tempMesg, "RxXXXXXX"));
85
86 /*
87 * It's okay to call savestr in here because main will
88 * do a spreserve() after us.
89 */
90 if (myname != NOSTR) {
91 if (getuserid(myname) < 0) {
92 printf("\"%s\" is not a user of this system\n",
93 myname);
94 exit(1);
95 }
96 } else {
97 if ((cp = username()) == NOSTR) {
98 myname = "ubluit";
99 if (rcvmode) {
100 printf("Who are you!?\n");
101 exit(1);
102 }
103 } else
104 myname = savestr(cp);
105 }
106 if ((cp = getenv("HOME")) == NOSTR)
107 cp = ".";
108 homedir = savestr(cp);
109 if (debug)
110 printf("user = %s, homedir = %s\n", myname, homedir);
111}
71 (void)strcpy(cp, tmpdir);
72 cp[len] = '/';
73 cp[len + 1] = '\0';
74 tmpdir = cp;
75 }
76
77 strcpy(tempMail, tmpdir);
78 mktemp(strcat(tempMail, "RsXXXXXX"));
79 strcpy(tempResid, tmpdir);
80 mktemp(strcat(tempResid, "RqXXXXXX"));
81 strcpy(tempQuit, tmpdir);
82 mktemp(strcat(tempQuit, "RmXXXXXX"));
83 strcpy(tempEdit, tmpdir);
84 mktemp(strcat(tempEdit, "ReXXXXXX"));
85 strcpy(tempMesg, tmpdir);
86 mktemp(strcat(tempMesg, "RxXXXXXX"));
87
88 /*
89 * It's okay to call savestr in here because main will
90 * do a spreserve() after us.
91 */
92 if (myname != NOSTR) {
93 if (getuserid(myname) < 0) {
94 printf("\"%s\" is not a user of this system\n",
95 myname);
96 exit(1);
97 }
98 } else {
99 if ((cp = username()) == NOSTR) {
100 myname = "ubluit";
101 if (rcvmode) {
102 printf("Who are you!?\n");
103 exit(1);
104 }
105 } else
106 myname = savestr(cp);
107 }
108 if ((cp = getenv("HOME")) == NOSTR)
109 cp = ".";
110 homedir = savestr(cp);
111 if (debug)
112 printf("user = %s, homedir = %s\n", myname, homedir);
113}