Commit | Line | Data |
---|---|---|
45fc66f9 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 | * @(#)find.h 5.1 (Berkeley) %G% | |
11 | */ | |
12 | ||
13 | /* node definition */ | |
14 | typedef struct _plandata { | |
15 | struct _plandata *next; /* next node */ | |
16 | int (*eval)(); /* node evaluation function */ | |
17 | int flags; /* private flags */ | |
18 | int type; /* plan node type */ | |
19 | union { | |
20 | gid_t _g_data; /* gid */ | |
21 | ino_t _i_data; /* inode */ | |
22 | mode_t _m_data; /* mode mask */ | |
23 | nlink_t _l_data; /* link count */ | |
24 | off_t _o_data; /* file size */ | |
25 | time_t _t_data; /* time value */ | |
26 | uid_t _u_data; /* uid */ | |
27 | struct _plandata *_p_data[2]; /* PLAN trees */ | |
28 | struct _ex { | |
29 | char **_e_argv; /* argv array */ | |
30 | char **_e_orig; /* original strings */ | |
31 | int *_e_len; /* allocated length */ | |
32 | } ex; | |
33 | char *_a_data[2]; /* array of char pointers */ | |
34 | char *_c_data; /* char pointer */ | |
35 | } p_un; | |
36 | #define a_data p_un._a_data | |
37 | #define c_data p_un._c_data | |
38 | #define i_data p_un._i_data | |
39 | #define g_data p_un._g_data | |
40 | #define l_data p_un._l_data | |
41 | #define m_data p_un._m_data | |
42 | #define o_data p_un._o_data | |
43 | #define p_data p_un._p_data | |
44 | #define t_data p_un._t_data | |
45 | #define u_data p_un._u_data | |
46 | #define e_argv p_un.ex._e_argv | |
47 | #define e_orig p_un.ex._e_orig | |
48 | #define e_len p_un.ex._e_len | |
49 | } PLAN; | |
50 | ||
51 | /* node types */ | |
52 | #define T_AND 1 /* must start at >0 */ | |
53 | #define T_ATIME 2 | |
54 | #define T_CLOSEPAREN 3 | |
55 | #define T_CTIME 4 | |
56 | #define T_DEPTH 5 | |
57 | #define T_EXEC 6 | |
58 | #define T_EXPR 7 | |
59 | #define T_FOLLOW 8 | |
60 | #define T_FSTYPE 9 | |
61 | #define T_GROUP 10 | |
62 | #define T_INUM 11 | |
63 | #define T_LINKS 12 | |
64 | #define T_LS 13 | |
65 | #define T_MTIME 14 | |
66 | #define T_NAME 15 | |
67 | #define T_NEWER 16 | |
68 | #define T_NOGROUP 17 | |
69 | #define T_NOT 18 | |
70 | #define T_NOUSER 19 | |
71 | #define T_OK 20 | |
72 | #define T_OPENPAREN 21 | |
73 | #define T_OR 22 | |
74 | #define T_PERM 23 | |
75 | #define T_PRINT 24 | |
76 | #define T_PRUNE 25 | |
77 | #define T_SIZE 26 | |
78 | #define T_TYPE 27 | |
79 | #define T_USER 28 | |
80 | #define T_XDEV 29 | |
81 | ||
82 | extern int errno; | |
83 | extern int ftsoptions, output_specified; | |
84 | char *emalloc(); |