1/*	$OpenBSD: extern.h,v 1.22 2017/01/03 21:31:16 tedu Exp $ */
2/*-
3 * Copyright (c) 1991, 1993
4 *	The Regents of the University of California.  All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 *    notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 *    notice, this list of conditions and the following disclaimer in the
13 *    documentation and/or other materials provided with the distribution.
14 * 3. Neither the name of the University nor the names of its contributors
15 *    may be used to endorse or promote products derived from this software
16 *    without specific prior written permission.
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
30 *	from: @(#)extern.h	8.1 (Berkeley) 6/6/93
31 */
32
33void	 brace_subst(char *, char **, char *, int);
34void	*emalloc(size_t);
35void	*ereallocarray(void *, size_t, size_t);
36PLAN	*find_create(char ***);
37int	 find_execute(PLAN *, char **);
38PLAN	*find_formplan(char **);
39int	find_traverse(PLAN *, int (*)(PLAN *, void *), void *);
40PLAN	*not_squish(PLAN *);
41OPTION	*option(char *);
42PLAN	*or_squish(PLAN *);
43PLAN	*paren_squish(PLAN *);
44int	plan_cleanup(PLAN *, void *);
45struct stat;
46void	 printlong(char *, char *, struct stat *);
47int	 queryuser(char **);
48void	 show_path(int);
49
50PLAN	*c_amin(char *, char ***, int);
51PLAN	*c_anewer(char *, char ***, int);
52PLAN	*c_atime(char *, char ***, int);
53PLAN	*c_cmin(char *, char ***, int);
54PLAN	*c_cnewer(char *, char ***, int);
55PLAN	*c_ctime(char *, char ***, int);
56PLAN	*c_delete(char *, char ***, int);
57PLAN	*c_depth(char *, char ***, int);
58PLAN	*c_empty(char *, char ***, int);
59PLAN	*c_exec(char *, char ***, int);
60PLAN	*c_execdir(char *, char ***, int);
61PLAN	*c_flags(char *, char ***, int);
62PLAN	*c_follow(char *, char ***, int);
63PLAN	*c_fstype(char *, char ***, int);
64PLAN	*c_group(char *, char ***, int);
65PLAN	*c_iname(char *, char ***, int);
66PLAN	*c_inum(char *, char ***, int);
67PLAN	*c_links(char *, char ***, int);
68PLAN	*c_ls(char *, char ***, int);
69PLAN	*c_maxdepth(char *, char ***, int);
70PLAN	*c_mindepth(char *, char ***, int);
71PLAN	*c_mmin(char *, char ***, int);
72PLAN	*c_name(char *, char ***, int);
73PLAN	*c_newer(char *, char ***, int);
74PLAN	*c_nogroup(char *, char ***, int);
75PLAN	*c_nouser(char *, char ***, int);
76PLAN	*c_path(char *, char ***, int);
77PLAN	*c_perm(char *, char ***, int);
78PLAN	*c_print(char *, char ***, int);
79PLAN	*c_print0(char *, char ***, int);
80PLAN	*c_prune(char *, char ***, int);
81PLAN	*c_size(char *, char ***, int);
82PLAN	*c_type(char *, char ***, int);
83PLAN	*c_user(char *, char ***, int);
84PLAN	*c_xdev(char *, char ***, int);
85PLAN	*c_openparen(char *, char ***, int);
86PLAN	*c_closeparen(char *, char ***, int);
87PLAN	*c_mtime(char *, char ***, int);
88PLAN	*c_not(char *, char ***, int);
89PLAN	*c_or(char *, char ***, int);
90
91extern int ftsoptions, isdelete, isdepth, isoutput, isxargs;
92extern int mayexecve;
93