summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernhard Voelker <mail@bernhard-voelker.de>2021-08-22 17:19:36 +0200
committerBernhard Voelker <mail@bernhard-voelker.de>2021-09-18 21:46:04 +0200
commitc286752823502c55151c391ddceb7ca34d63167a (patch)
tree5451b0508b692358c69e3ac0f5185c9ae8018415
parente4a19150297a9232d703d1a83b450490ed4e07d5 (diff)
downloadfindutils-c286752823502c55151c391ddceb7ca34d63167a.tar.gz
find: remove redundant function error_severity and avoid magic numbers
The struct state field exit_status is only set to 0 (EXIT_SUCCESS) or to 1 (EXIT_FAILURE) throughout the code. Therefore, remove the more complicated wrapper function error_severity which was only used in very few cases anyway. While at it, replace the above magic numbers by EXIT_OKAY/EXIT_SUCCESS. * find/defs.h (error_severity): Remove. * find/util.c (error_severity): Remove, and update all callers by replacing it by the direct assignment to state.exit_status. (get_statinfo): Use the above better names. (report_file_err): Likewise. * find/exec.c (launch): Likewise. * find/ftsfind.c (consider_visiting): Likewise. (find): Likewise. (process_all_startpoints): Likewise. (main): Likewise. * find/pred.c (pred_delete): Likewise. (pred_empty): Likewise. (match_lname): Likewise. (pred_xtype): Likewise. * find/print.c (do_fprintf): Likewise.
-rw-r--r--find/defs.h1
-rw-r--r--find/exec.c6
-rw-r--r--find/ftsfind.c14
-rw-r--r--find/pred.c14
-rw-r--r--find/print.c6
-rw-r--r--find/util.c17
6 files changed, 22 insertions, 36 deletions
diff --git a/find/defs.h b/find/defs.h
index 27b00a0e..1b02457d 100644
--- a/find/defs.h
+++ b/find/defs.h
@@ -517,7 +517,6 @@ void nonfatal_nontarget_file_error (int errno_value, const char *name);
int process_leading_options (int argc, char *argv[]);
void set_option_defaults (struct options *p);
-void error_severity (int level);
# if 0
# define apply_predicate(pathname, stat_buf_ptr, node) \
diff --git a/find/exec.c b/find/exec.c
index ab63d60e..7267c2de 100644
--- a/find/exec.c
+++ b/find/exec.c
@@ -347,7 +347,7 @@ launch (struct buildcmd_control *ctl, void *usercontext, int argc, char **argv)
{
error (0, errno, _("error waiting for %s"),
safely_quote_err_filename (0, argv[0]));
- state.exit_status = 1;
+ state.exit_status = EXIT_FAILURE;
return 0; /* FAIL */
}
}
@@ -364,7 +364,7 @@ launch (struct buildcmd_control *ctl, void *usercontext, int argc, char **argv)
* -exec {} + returns true if the invoked command fails, but
* sets the program exit status.
*/
- state.exit_status = 1;
+ state.exit_status = EXIT_FAILURE;
}
return 1; /* OK */
@@ -392,7 +392,7 @@ launch (struct buildcmd_control *ctl, void *usercontext, int argc, char **argv)
* -exec {} + returns true if the invoked command fails, but
* sets the program exit status.
*/
- state.exit_status = 1;
+ state.exit_status = EXIT_FAILURE;
}
/* The child failed, but this is the exec callback. We
* don't want to run the child again in this case anwyay.
diff --git a/find/ftsfind.c b/find/ftsfind.c
index 75da0707..bd3b8ee8 100644
--- a/find/ftsfind.c
+++ b/find/ftsfind.c
@@ -319,7 +319,7 @@ consider_visiting (FTS *p, FTSENT *ent)
else if (ent->fts_info == FTS_DC)
{
issue_loop_warning (ent);
- error_severity (EXIT_FAILURE);
+ state.exit_status = EXIT_FAILURE;
return;
}
else if (ent->fts_info == FTS_SLNONE)
@@ -508,7 +508,7 @@ find (char *arg)
{
error (0, errno, _("cannot search %s"),
safely_quote_err_filename (0, arg));
- error_severity (EXIT_FAILURE);
+ state.exit_status = EXIT_FAILURE;
}
else
{
@@ -541,7 +541,7 @@ find (char *arg)
error (0, errno,
"failed to read file names from file system at or below %s",
safely_quote_err_filename (0, arg));
- error_severity (EXIT_FAILURE);
+ state.exit_status = EXIT_FAILURE;
return false;
}
@@ -554,7 +554,7 @@ find (char *arg)
error (0, errno,
_("failed to restore working directory after searching %s"),
arg);
- error_severity (EXIT_FAILURE);
+ state.exit_status = EXIT_FAILURE;
return false;
}
p = NULL;
@@ -666,7 +666,7 @@ process_all_startpoints (int argc, char *argv[])
goto argv_iter_done;
case AI_ERR_READ: /* may only happen with -files0-from */
error (0, errno, _("%s: read error"), files0_filename_quoted);
- state.exit_status = 1;
+ state.exit_status = EXIT_FAILURE;
ok = false;
goto argv_iter_done;
case AI_ERR_MEM:
@@ -694,7 +694,7 @@ process_all_startpoints (int argc, char *argv[])
error (0, 0, "%s:%lu: %s", files0_filename_quoted, file_number,
_("invalid zero-length file name"));
}
- state.exit_status = 1;
+ state.exit_status = EXIT_FAILURE;
ok = false;
continue;
}
@@ -742,7 +742,7 @@ main (int argc, char **argv)
record_initial_cwd ();
state.already_issued_stat_error_msg = false;
- state.exit_status = 0;
+ state.exit_status = EXIT_SUCCESS;
state.execdirs_outstanding = false;
state.cwd_dir_fd = AT_FDCWD;
diff --git a/find/pred.c b/find/pred.c
index 07572608..bf995723 100644
--- a/find/pred.c
+++ b/find/pred.c
@@ -269,7 +269,7 @@ pred_delete (const char *pathname, struct stat *stat_buf, struct predicate *pred
* seems somewhat arbitrary and confusing. So, as of
* findutils-4.3.11, we also set the exit status in this case.
*/
- state.exit_status = 1;
+ state.exit_status = EXIT_FAILURE;
return false;
}
else
@@ -300,14 +300,14 @@ pred_empty (const char *pathname, struct stat *stat_buf, struct predicate *pred_
| O_CLOEXEC | O_DIRECTORY | O_NOCTTY | O_NONBLOCK)) < 0)
{
error (0, errno, "%s", safely_quote_err_filename (0, pathname));
- state.exit_status = 1;
+ state.exit_status = EXIT_FAILURE;
return false;
}
d = fdopendir (fd);
if (d == NULL)
{
error (0, errno, "%s", safely_quote_err_filename (0, pathname));
- state.exit_status = 1;
+ state.exit_status = EXIT_FAILURE;
close (fd);
return false;
}
@@ -328,14 +328,14 @@ pred_empty (const char *pathname, struct stat *stat_buf, struct predicate *pred_
{
/* Handle errors from readdir(3). */
error (0, errno, "%s", safely_quote_err_filename (0, pathname));
- state.exit_status = 1;
+ state.exit_status = EXIT_FAILURE;
CLOSEDIR (d);
return false;
}
if (CLOSEDIR (d))
{
error (0, errno, "%s", safely_quote_err_filename (0, pathname));
- state.exit_status = 1;
+ state.exit_status = EXIT_FAILURE;
return false;
}
return (empty);
@@ -574,7 +574,7 @@ match_lname (const char *pathname, struct stat *stat_buf, struct predicate *pred
else
{
nonfatal_target_file_error (errno, pathname);
- state.exit_status = 1;
+ state.exit_status = EXIT_FAILURE;
}
free (linkname);
}
@@ -1150,7 +1150,7 @@ pred_xtype (const char *pathname, struct stat *stat_buf, struct predicate *pred_
else
{
error (0, errno, "%s", safely_quote_err_filename (0, pathname));
- state.exit_status = 1;
+ state.exit_status = EXIT_FAILURE;
}
return false;
}
diff --git a/find/print.c b/find/print.c
index 716eb819..598f4a20 100644
--- a/find/print.c
+++ b/find/print.c
@@ -1029,7 +1029,7 @@ do_fprintf (struct format_val *dest,
if (linkname == NULL)
{
nonfatal_target_file_error (errno, pathname);
- state.exit_status = 1;
+ state.exit_status = EXIT_FAILURE;
}
}
if (linkname)
@@ -1198,7 +1198,7 @@ do_fprintf (struct format_val *dest,
checked_fprintf (dest, segment->text, "?");
error (0, errno, "%s",
safely_quote_err_filename (0, pathname));
- /* exit_status = 1;
+ /* exit_status = EXIT_FAILURE;
return ; */
break;
}
@@ -1237,7 +1237,7 @@ do_fprintf (struct format_val *dest,
error (0, errno, _("getfilecon failed: %s"),
safely_quote_err_filename (0, pathname));
- state.exit_status = 1;
+ state.exit_status = EXIT_FAILURE;
}
else
{
diff --git a/find/util.c b/find/util.c
index 63de5cce..4446f89b 100644
--- a/find/util.c
+++ b/find/util.c
@@ -254,7 +254,7 @@ get_statinfo (const char *pathname, const char *name, struct stat *p)
/* Savannah bug #16378. */
error (0, 0, _("WARNING: file %s appears to have mode 0000"),
quotearg_n_style (0, options.err_quoting_style, name));
- error_severity (1);
+ state.exit_status = EXIT_FAILURE;
}
}
else
@@ -1124,19 +1124,6 @@ safely_quote_err_filename (int n, char const *arg)
return quotearg_n_style (n, options.err_quoting_style, arg);
}
-/* We have encountered an error which should affect the exit status.
- * This is normally used to change the exit status from 0 to 1.
- * However, if the exit status is already 2 for example, we don't want to
- * reduce it to 1.
- */
-void
-error_severity (int level)
-{
- if (state.exit_status < level)
- state.exit_status = level;
-}
-
-
/* report_file_err
*/
static void
@@ -1150,7 +1137,7 @@ report_file_err(int exitval, int errno_value,
if (!is_target_file || !state.already_issued_stat_error_msg)
{
error (exitval, errno_value, "%s", safely_quote_err_filename (0, name));
- error_severity (1);
+ state.exit_status = EXIT_FAILURE;
}
if (is_target_file)
{