diff options
author | Eric Andersen <andersen@codepoet.org> | 1999-10-05 20:24:54 +0400 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 1999-10-05 20:24:54 +0400 |
commit | cc8ed39b240180b58810784f844e253263594ac3 (patch) | |
tree | 15feebbb4be9a9168209609f48f0b100f9364420 /rm.c |
Initial revision0_29alpha2
Diffstat (limited to 'rm.c')
-rw-r--r-- | rm.c | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -0,0 +1,30 @@ +#include "internal.h" +#include <errno.h> + +const char rm_usage[] = "rm [-r] file [file ...]\n" +"\n" +"\tDelete files.\n" +"\n" +"\t-r:\tRecursively remove files and directories.\n"; + +extern int +rm_main(struct FileInfo * i, int argc, char * * argv) +{ + i->processDirectoriesAfterTheirContents = 1; + return monadic_main(i, argc, argv); +} + +extern int +rm_fn(const struct FileInfo * i) +{ + if ( i->recursive + && !i->isSymbolicLink + && (i->stat.st_mode & S_IFMT) == S_IFDIR ) + return rmdir_fn(i); + else if ( unlink(i->source) != 0 && errno != ENOENT && !i->force ) { + name_and_error(i->source); + return 1; + } + else + return 0; +} |