From: Matt Kraai Date: Tue, 5 Dec 2000 05:11:41 +0000 (-0000) Subject: Use perrorMsg instead of perror and keep removing files if we encounter X-Git-Tag: 0_48~73 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=d27753afd983ffeae45b80dee92f02d0518ca7bf;p=oweals%2Fbusybox.git Use perrorMsg instead of perror and keep removing files if we encounter an error. --- diff --git a/coreutils/rm.c b/coreutils/rm.c index c62083e9b..566335158 100644 --- a/coreutils/rm.c +++ b/coreutils/rm.c @@ -37,7 +37,7 @@ static const char *srcName; static int fileAction(const char *fileName, struct stat *statbuf, void* junk) { if (unlink(fileName) < 0) { - perror(fileName); + perrorMsg("%s", fileName); return (FALSE); } return (TRUE); @@ -47,11 +47,11 @@ static int dirAction(const char *fileName, struct stat *statbuf, void* junk) { if (recursiveFlag == FALSE) { errno = EISDIR; - perror(fileName); + perrorMsg("%s", fileName); return (FALSE); } if (rmdir(fileName) < 0) { - perror(fileName); + perrorMsg("%s", fileName); return (FALSE); } return (TRUE); @@ -59,6 +59,7 @@ static int dirAction(const char *fileName, struct stat *statbuf, void* junk) extern int rm_main(int argc, char **argv) { + int status = EXIT_SUCCESS; int stopIt=FALSE; struct stat statbuf; @@ -102,9 +103,9 @@ extern int rm_main(int argc, char **argv) } else { if (recursiveAction(srcName, recursiveFlag, FALSE, TRUE, fileAction, dirAction, NULL) == FALSE) { - return EXIT_FAILURE; + status = EXIT_FAILURE; } } } - return EXIT_SUCCESS; + return status; } diff --git a/rm.c b/rm.c index c62083e9b..566335158 100644 --- a/rm.c +++ b/rm.c @@ -37,7 +37,7 @@ static const char *srcName; static int fileAction(const char *fileName, struct stat *statbuf, void* junk) { if (unlink(fileName) < 0) { - perror(fileName); + perrorMsg("%s", fileName); return (FALSE); } return (TRUE); @@ -47,11 +47,11 @@ static int dirAction(const char *fileName, struct stat *statbuf, void* junk) { if (recursiveFlag == FALSE) { errno = EISDIR; - perror(fileName); + perrorMsg("%s", fileName); return (FALSE); } if (rmdir(fileName) < 0) { - perror(fileName); + perrorMsg("%s", fileName); return (FALSE); } return (TRUE); @@ -59,6 +59,7 @@ static int dirAction(const char *fileName, struct stat *statbuf, void* junk) extern int rm_main(int argc, char **argv) { + int status = EXIT_SUCCESS; int stopIt=FALSE; struct stat statbuf; @@ -102,9 +103,9 @@ extern int rm_main(int argc, char **argv) } else { if (recursiveAction(srcName, recursiveFlag, FALSE, TRUE, fileAction, dirAction, NULL) == FALSE) { - return EXIT_FAILURE; + status = EXIT_FAILURE; } } } - return EXIT_SUCCESS; + return status; } diff --git a/utility.c b/utility.c index 9ae2a8f24..7c41ab8fb 100644 --- a/utility.c +++ b/utility.c @@ -641,7 +641,7 @@ int recursiveAction(const char *fileName, "status=%d followLinks=%d TRUE=%d\n", status, followLinks, TRUE); #endif - perror(fileName); + perrorMsg("%s", fileName); return FALSE; } @@ -666,13 +666,13 @@ int recursiveAction(const char *fileName, dir = opendir(fileName); if (!dir) { - perror(fileName); + perrorMsg("%s", fileName); return FALSE; } if (dirAction != NULL && depthFirst == FALSE) { status = dirAction(fileName, &statbuf, userData); if (status == FALSE) { - perror(fileName); + perrorMsg("%s", fileName); return FALSE; } } @@ -699,13 +699,13 @@ int recursiveAction(const char *fileName, } status = closedir(dir); if (status < 0) { - perror(fileName); + perrorMsg("%s", fileName); return FALSE; } if (dirAction != NULL && depthFirst == TRUE) { status = dirAction(fileName, &statbuf, userData); if (status == FALSE) { - perror(fileName); + perrorMsg("%s", fileName); return FALSE; } }