1: /*-
2: * Copyright (c) 1990 The Regents of the University of California.
3: * All rights reserved.
4: *
5: * This code is derived from software contributed to Berkeley by
6: * Hugh Smith at The University of Guelph.
7: *
8: * Redistribution and use in source and binary forms, with or without
9: * modification, are permitted provided that the following conditions
10: * are met:
11: * 1. Redistributions of source code must retain the above copyright
12: * notice, this list of conditions and the following disclaimer.
13: * 2. Redistributions in binary form must reproduce the above copyright
14: * notice, this list of conditions and the following disclaimer in the
15: * documentation and/or other materials provided with the distribution.
16: * 3. All advertising materials mentioning features or use of this software
17: * must display the following acknowledgement:
18: * This product includes software developed by the University of
19: * California, Berkeley and its contributors.
20: * 4. Neither the name of the University nor the names of its contributors
21: * may be used to endorse or promote products derived from this software
22: * without specific prior written permission.
23: *
24: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34: * SUCH DAMAGE.
35: */
36:
37: #if !defined(lint) && defined(DOSCCS)
38: static char sccsid[] = "@(#)misc.c 5.2 (Berkeley) 2/26/91";
39: #endif
40:
41: #include <sys/param.h>
42: #include <sys/signal.h>
43: #include <errno.h>
44: #include <stdio.h>
45: #include <string.h>
46: #include "pathnames.h"
47:
48: extern int errno;
49: extern char *archive, *malloc(); /* archive name */
50: void error();
51: char *tname = "temporary file"; /* temporary file "name" */
52:
53: tmp()
54: {
55: long set, oset;
56: int fd;
57: char path[MAXPATHLEN];
58:
59: bcopy(_PATH_RANTMP, path, sizeof(_PATH_RANTMP));
60:
61: set = sigmask(SIGHUP)|sigmask(SIGINT)|sigmask(SIGQUIT)|sigmask(SIGTERM);
62: oset = sigsetmask(set);
63: if ((fd = mkstemp(path)) == -1)
64: error(tname);
65: (void)unlink(path);
66: (void)sigsetmask(oset);
67: return(fd);
68: }
69:
70: void *
71: emalloc(len)
72: int len;
73: {
74: char *p;
75:
76: if (!(p = malloc((u_int)len)))
77: error(archive);
78: return((void *)p);
79: }
80:
81: char *
82: rname(path)
83: char *path;
84: {
85: register char *ind;
86:
87: return((ind = rindex(path, '/')) ? ind + 1 : path);
88: }
89:
90: void
91: badfmt()
92: {
93: errno = EINVAL;
94: error(archive);
95: }
96:
97: void
98: error(name)
99: char *name;
100: {
101: (void)fprintf(stderr, "ranlib: %s: %s\n", name, strerror(errno));
102: exit(1);
103: }
Defined functions
error
defined in line
97; used 16 times
rname
defined in line
81;
never used
tmp
defined in line
53; used 1 times
Defined variables
tname
defined in line
51; used 8 times