aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Kraai <kraai@debian.org>2000-12-05 05:11:41 +0000
committerMatt Kraai <kraai@debian.org>2000-12-05 05:11:41 +0000
commitd27753afd983ffeae45b80dee92f02d0518ca7bf (patch)
tree1ecefa6dc73279cfe4ae3a45cc647823094248f0
parent0e836ed8db86ef0274510c27e173f7ac66c6b2a6 (diff)
downloadbusybox-d27753afd983ffeae45b80dee92f02d0518ca7bf.tar.gz
Use perrorMsg instead of perror and keep removing files if we encounter
an error.
-rw-r--r--coreutils/rm.c11
-rw-r--r--rm.c11
-rw-r--r--utility.c10
3 files changed, 17 insertions, 15 deletions
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;
}
}