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 *);