Use perrorMsg instead of perror and keep removing files if we encounter
an error.
This commit is contained in:
parent
0e836ed8db
commit
d27753afd9
@ -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;
|
||||
}
|
||||
|
11
rm.c
11
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;
|
||||
}
|
||||
|
10
utility.c
10
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;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user