master xplshn/aruu / shared / fs.h
 1/* See LICENSE file for copyright and license details. */
 2#include <limits.h>
 3#include <sys/stat.h>
 4#include <sys/types.h>
 5
 6struct history {
 7	struct history *prev;
 8	dev_t dev;
 9	ino_t ino;
10};
11
12struct recursor {
13	void (*fn)(int, const char *, struct stat *, void *, struct recursor *);
14	char path[PATH_MAX];
15	size_t pathlen;
16	struct history *hist;
17	int depth;
18	int maxdepth;
19	int follow;
20	int flags;
21};
22
23enum {
24	SAMEDEV  = 1 << 0,
25	DIRFIRST = 1 << 1,
26	SILENT   = 1 << 2,
27	CONFIRM  = 1 << 3,
28	IGNORE   = 1 << 4,
29};
30
31extern int cp_aflag;
32extern int cp_fflag;
33extern int cp_iflag;
34extern int cp_pflag;
35extern int cp_rflag;
36extern int cp_vflag;
37extern int cp_follow;
38extern int cp_status;
39
40extern int rm_status;
41
42extern int recurse_status;
43
44void recurse(int, const char *, void *, struct recursor *);
45
46int cp(const char *, const char *, int);
47void rm(int, const char *, struct stat *st, void *, struct recursor *);