From a9c95ea6551eb3d894fcc56822c8aa394972b699 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Mon, 15 Nov 1999 17:33:30 +0000 Subject: Updates --- coreutils/rm.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'coreutils') diff --git a/coreutils/rm.c b/coreutils/rm.c index e6132ab35..ba5d30e92 100644 --- a/coreutils/rm.c +++ b/coreutils/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