From 68852f97ac9a68c6097e777339e0463a5e11c9eb Mon Sep 17 00:00:00 2001 From: andersen Date: Mon, 15 Nov 1999 17:33:30 +0000 Subject: Updates git-svn-id: svn://busybox.net/trunk/busybox@101 69ca8d6d-28ef-0310-b511-8ec308f3f277 --- rm.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'rm.c') diff --git a/rm.c b/rm.c index e6132ab35..ba5d30e92 100644 --- a/rm.c +++ b/rm.c @@ -26,6 +26,7 @@ #include #include #include +#include static const char* rm_usage = "rm [OPTION]... FILE...\n\n" "Remove (unlink) the FILE(s).\n\n" @@ -59,6 +60,7 @@ static int dirAction(const char *fileName, struct stat* statbuf) extern int rm_main(int argc, char **argv) { + struct stat statbuf; if (argc < 2) { usage( rm_usage); @@ -85,9 +87,14 @@ extern int rm_main(int argc, char **argv) while (argc-- > 0) { srcName = *(argv++); - if (recursiveAction( srcName, recursiveFlag, FALSE, TRUE, - fileAction, dirAction) == FALSE) { - exit( FALSE); + if (forceFlag == TRUE && lstat(srcName, &statbuf) != 0 && errno == ENOENT) { + /* do not reports errors for non-existent files if -f, just skip them */ + } + else { + if (recursiveAction( srcName, recursiveFlag, FALSE, + TRUE, fileAction, dirAction) == FALSE) { + exit( FALSE); + } } } exit( TRUE); -- cgit v1.2.3-55-g6feb