sigset.c -> sigsetops.c, add sigsetops man page
[unix-history] / usr / src / usr.bin / find / misc.c
CommitLineData
d49d145d
KB
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 * Cimarron D. Taylor of the University of California, Berkeley.
7 *
8 * %sccs.include.redist.c%
9 */
10
11#ifndef lint
202dd4ce 12static char sccsid[] = "@(#)misc.c 5.2 (Berkeley) %G%";
d49d145d
KB
13#endif /* not lint */
14
15#include <sys/types.h>
16#include <sys/stat.h>
17#include <stdio.h>
18#include "find.h"
19
d49d145d
KB
20/*
21 * find_subst --
22 * Replace occurrences of {} in s1 with s2 and return the result string.
d49d145d
KB
23 */
24find_subst(orig, store, path, len)
25 char *orig, **store, *path;
26 int len;
27{
28 register int plen;
29 register char ch, *p;
202dd4ce 30 char *realloc(), *strerror();
d49d145d
KB
31
32 plen = strlen(path);
33 for (p = *store; ch = *orig; ++orig)
34 if (ch == '{' && orig[1] == '}') {
35 while ((p - *store) + plen > len)
36 if (!(*store = realloc(*store, len *= 2))) {
37 (void)fprintf(stderr,
38 "find: %s.\n", strerror(errno));
39 exit(1);
40 }
41 bcopy(path, p, plen);
42 p += plen;
43 ++orig;
44 } else
45 *p++ = ch;
46 *p = '\0';
47}
48
49/*
50 * find_queryuser --
51 * print a message to standard error and then read input from standard
52 * input. If the input is 'y' then 1 is returned.
53 */
54find_queryuser(argv)
55 register char **argv;
56{
57 char buf[10];
58
59 (void)fprintf(stderr, "\"%s", *argv);
60 while (*++argv)
61 (void)fprintf(stderr, " %s", *argv);
62 (void)fprintf(stderr, "\"? ");
63 (void)fflush(stderr);
64 return(!fgets(buf, sizeof(buf), stdin) || buf[0] != 'y' ? 0 : 1);
65}
66
67/*
68 * bad_arg --
69 * print out a bad argument message.
70 */
71void
72bad_arg(option, error)
73 char *option, *error;
74{
75 (void)fprintf(stderr, "find: %s: %s.\n", option, error);
76 exit(1);
77}
78
79/*
80 * emalloc --
81 * malloc with error checking.
82 */
83char *
84emalloc(len)
85 u_int len;
86{
202dd4ce 87 char *p, *malloc(), *strerror();
d49d145d
KB
88
89 if (!(p = malloc(len))) {
90 (void)fprintf(stderr, "find: %s.\n", strerror(errno));
91 exit(1);
92 }
93 return(p);
94}
95
96usage()
97{
202dd4ce
KB
98 extern int deprecated;
99
100 if (deprecated)
101 (void)fprintf(stderr, "usage: find path-list expression\n");
102 else
103 (void)fprintf(stderr,
104 "usage: find [-dsx] -f path ... expression\n");
d49d145d
KB
105 exit(1);
106}