Rev 3337 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 3277 | post | 1 | #ifndef RM_H |
| 2 | #define RM_H |
||
| 3 | |||
| 3337 | post | 4 | /* Return values for rm_scope() */ |
| 3296 | post | 5 | #define RM_BOGUS 0 |
| 6 | #define RM_FILE 1 |
||
| 7 | #define RM_DIR 2 |
||
| 8 | |||
| 3337 | post | 9 | /* Flags for rm_update() */ |
| 10 | #define _RM_ENTRY 0 |
||
| 11 | #define _RM_ADVANCE 1 |
||
| 12 | #define _RM_REWIND 2 |
||
| 13 | #define _RM_EXIT 3 |
||
| 14 | |||
| 15 | /* A simple job structure */ |
||
| 16 | typedef struct { |
||
| 17 | /* Options set at run time */ |
||
| 18 | unsigned int force; /* -f option */ |
||
| 19 | unsigned int recursive; /* -r option */ |
||
| 20 | unsigned int safe; /* -s option */ |
||
| 21 | |||
| 22 | /* Keeps track of the job in progress */ |
||
| 23 | int advance; /* How far deep we've gone since entering */ |
||
| 24 | DIR *entry; /* Entry point to the tree being removed */ |
||
| 25 | char *owd; /* Where we were when we invoked rm */ |
||
| 26 | char *cwd; /* Current directory being transversed */ |
||
| 27 | char *nwd; /* Next directory to be transversed */ |
||
| 28 | |||
| 29 | /* Counters */ |
||
| 30 | int f_removed; /* Number of files unlinked */ |
||
| 31 | int d_removed; /* Number of directories unlinked */ |
||
| 32 | } rm_job_t; |
||
| 33 | |||
| 34 | |||
| 3277 | post | 35 | /* Prototypes for the rm command, excluding entry points */ |
| 3337 | post | 36 | extern unsigned int rm_start(rm_job_t *); |
| 37 | extern void rm_end(rm_job_t *rm); |
||
| 3296 | post | 38 | extern unsigned int rm_recursive(const char *); |
| 39 | extern unsigned int rm_single(const char *); |
||
| 40 | extern unsigned int rm_scope(const char *); |
||
| 3337 | post | 41 | |
| 3277 | post | 42 | #endif /* RM_H */ |
| 43 |