|
|
1.1 root 1: /* tmpfil.c
2: Get a temporary file name.
3:
4: Copyright (C) 1991, 1992 Ian Lance Taylor
5:
6: This file is part of the Taylor UUCP package.
7:
8: This program is free software; you can redistribute it and/or
9: modify it under the terms of the GNU General Public License as
10: published by the Free Software Foundation; either version 2 of the
11: License, or (at your option) any later version.
12:
13: This program is distributed in the hope that it will be useful, but
14: WITHOUT ANY WARRANTY; without even the implied warranty of
15: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16: General Public License for more details.
17:
18: You should have received a copy of the GNU General Public License
19: along with this program; if not, write to the Free Software
20: Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21:
22: The author of the program may be contacted at [email protected] or
23: c/o Infinity Development Systems, P.O. Box 520, Waltham, MA 02254.
24: */
25:
26: #include "uucp.h"
27:
28: #include "uuconf.h"
29: #include "system.h"
30: #include "sysdep.h"
31:
32: #define ZDIGS \
33: "0123456789abcdefghijklmnopqrtsuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-"
34: #define CDIGS (sizeof ZDIGS - 1)
35:
36: /*ARGSUSED*/
37: char *
38: zstemp_file (qsys)
39: const struct uuconf_system *qsys;
40: {
41: static int icount;
42: const char *const zdigs = ZDIGS;
43: char ab[14];
44: pid_t ime;
45: int iset;
46:
47: ab[0] = 'T';
48: ab[1] = 'M';
49: ab[2] = '.';
50:
51: ime = getpid ();
52: iset = 3;
53: while (ime > 0 && iset < 10)
54: {
55: ab[iset] = zdigs[ime % CDIGS];
56: ime /= CDIGS;
57: ++iset;
58: }
59:
60: ab[iset] = '.';
61: ++iset;
62:
63: ab[iset] = zdigs[icount / CDIGS];
64: ++iset;
65: ab[iset] = zdigs[icount % CDIGS];
66: ++iset;
67:
68: ab[iset] = '\0';
69:
70: ++icount;
71: if (icount >= CDIGS * CDIGS)
72: icount = 0;
73:
74: #if SPOOLDIR_V2 || SPOOLDIR_BSD42
75: return zbufcpy (ab);
76: #endif
77: #if SPOOLDIR_BSD43 || SPOOLDIR_ULTRIX || SPOOLDIR_TAYLOR
78: return zsysdep_in_dir (".Temp", ab);
79: #endif
80: #if SPOOLDIR_HDB || SPOOLDIR_SVR4
81: return zsysdep_in_dir (qsys->uuconf_zname, ab);
82: #endif
83: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.