218 lines
7.1 KiB
Diff
218 lines
7.1 KiB
Diff
From e7b976a7e8b4023bd9ac2493341320f88aa9189c Mon Sep 17 00:00:00 2001
|
|
From: James Youngman <jay@gnu.org>
|
|
Date: Sat, 2 Jan 2016 13:04:24 +0000
|
|
Subject: [PATCH 023/224] find: Fix a number of compiler warnings (mostly
|
|
const-correctness).
|
|
|
|
* find/find.c (get_current_dirfd): remove unused function.
|
|
(process_dir): make parameters const: parent, pathname, name.
|
|
(process_path): make parameters const: parent, pathname, name.
|
|
(at_top): Modify the function pointer parameter accordingly.
|
|
* find/ftsfind.c (get_fts_info_name): Now returns const char*, not
|
|
char*.
|
|
(show_outstanding_execdirs): Fix type of loop variable to avoid
|
|
possible overflow.
|
|
(process_all_startpoints): Avoid compiler warning about overflow
|
|
of int loop variable.
|
|
* find/defs.h (struct predicate): Make p_name const.
|
|
(struct state): make rel_pathname const.
|
|
* find/exec.c (impl_pred_exec): Make prefix const.
|
|
(launch): Silence compiler warning about unused parameter argc.
|
|
* find/pred.c (blank_rtrim): Make str parameter const, since we do
|
|
not modify it.
|
|
* find/util.c (debug_option_assoc): name and docstring are now
|
|
const qualified.
|
|
(show_valid_debug_options): Avoid signed/unsigned comparison by
|
|
using a size_t array index.
|
|
(set_stat_placeholders): Avoid a compiler warning on systems
|
|
lacking birth time fields (and on which this function therefore
|
|
does nothing).
|
|
---
|
|
find/defs.h | 3 ++-
|
|
find/exec.c | 4 +++-
|
|
find/ftsfind.c | 6 ++++--
|
|
find/oldfind.c | 28 +++++++++++++---------------
|
|
find/util.c | 5 +++--
|
|
5 files changed, 25 insertions(+), 21 deletions(-)
|
|
|
|
diff --git a/find/defs.h b/find/defs.h
|
|
index a4647e83..981c5336 100644
|
|
--- a/find/defs.h
|
|
+++ b/find/defs.h
|
|
@@ -633,7 +633,8 @@ struct state
|
|
|
|
/* The file being operated on, relative to the current directory.
|
|
Used for stat, readlink, remove, and opendir. */
|
|
- char *rel_pathname;
|
|
+ const char *rel_pathname;
|
|
+
|
|
/* The directory fd to which rel_pathname is relative. This is relevant
|
|
* when we're navigating the hierarchy with fts() and using FTS_CWDFD.
|
|
*/
|
|
diff --git a/find/exec.c b/find/exec.c
|
|
index f8bd4389..8d20143f 100644
|
|
--- a/find/exec.c
|
|
+++ b/find/exec.c
|
|
@@ -114,7 +114,7 @@ impl_pred_exec (const char *pathname,
|
|
const char *target;
|
|
bool result;
|
|
const bool local = is_exec_in_local_dir (pred_ptr->pred_func);
|
|
- char *prefix;
|
|
+ const char *prefix;
|
|
size_t pfxlen;
|
|
|
|
(void) stat_buf;
|
|
@@ -292,6 +292,8 @@ launch (struct buildcmd_control *ctl, void *usercontext, int argc, char **argv)
|
|
static int first_time = 1;
|
|
struct exec_val *execp = usercontext;
|
|
|
|
+ (void) argc; /* silence compiler warning */
|
|
+
|
|
/* Make sure output of command doesn't get mixed with find output. */
|
|
fflush (stdout);
|
|
fflush (stderr);
|
|
diff --git a/find/ftsfind.c b/find/ftsfind.c
|
|
index cbb46de9..5128e574 100644
|
|
--- a/find/ftsfind.c
|
|
+++ b/find/ftsfind.c
|
|
@@ -152,7 +152,7 @@ static void init_mounted_dev_list (void);
|
|
#define STRINGIFY(X) #X
|
|
#define HANDLECASE(N) case N: return #N;
|
|
|
|
-static char *
|
|
+static const char *
|
|
get_fts_info_name (int info)
|
|
{
|
|
static char buf[10];
|
|
@@ -615,16 +615,18 @@ static bool
|
|
process_all_startpoints (int argc, char *argv[])
|
|
{
|
|
int i;
|
|
+ bool empty = true;
|
|
|
|
/* figure out how many start points there are */
|
|
for (i = 0; i < argc && !looks_like_expression (argv[i], true); i++)
|
|
{
|
|
+ empty = false;
|
|
state.starting_path_length = strlen (argv[i]); /* TODO: is this redundant? */
|
|
if (!find (argv[i]))
|
|
return false;
|
|
}
|
|
|
|
- if (i == 0)
|
|
+ if (empty)
|
|
{
|
|
/*
|
|
* We use a temporary variable here because some actions modify
|
|
diff --git a/find/oldfind.c b/find/oldfind.c
|
|
index 986e7b4c..cd235c06 100644
|
|
--- a/find/oldfind.c
|
|
+++ b/find/oldfind.c
|
|
@@ -95,11 +95,9 @@ enum
|
|
static void init_mounted_dev_list (int mandatory);
|
|
#endif
|
|
|
|
-static void process_top_path (char *pathname, mode_t mode, ino_t inum);
|
|
-static int process_path (char *pathname, char *name, bool leaf, char *parent, mode_t type, ino_t inum);
|
|
-static void process_dir (char *pathname, char *name, int pathlen, const struct stat *statp, char *parent);
|
|
-
|
|
-
|
|
+static void process_top_path (const char *pathname, mode_t mode, ino_t inum);
|
|
+static int process_path (const char *pathname, const char *name, bool leaf, const char *parent, mode_t type, ino_t inum);
|
|
+static void process_dir (const char *pathname, const char *name, int pathlen, const struct stat *statp, const char *parent);
|
|
|
|
/* A file descriptor open to the initial working directory.
|
|
Doing it this way allows us to work when the i.w.d. has
|
|
@@ -981,12 +979,12 @@ chdir_back (void)
|
|
* specified directory is a child of "." or is the root directory.
|
|
*/
|
|
static void
|
|
-at_top (char *pathname,
|
|
+at_top (const char *pathname,
|
|
mode_t mode,
|
|
ino_t inum,
|
|
struct stat *pstat,
|
|
- void (*action)(char *pathname,
|
|
- char *basename,
|
|
+ void (*action)(const char *pathname,
|
|
+ const char *basename,
|
|
int mode,
|
|
ino_t inum,
|
|
struct stat *pstat))
|
|
@@ -1056,8 +1054,8 @@ at_top (char *pathname,
|
|
}
|
|
|
|
|
|
-static void do_process_top_dir (char *pathname,
|
|
- char *base,
|
|
+static void do_process_top_dir (const char *pathname,
|
|
+ const char *base,
|
|
int mode,
|
|
ino_t inum,
|
|
struct stat *pstat)
|
|
@@ -1069,8 +1067,8 @@ static void do_process_top_dir (char *pathname,
|
|
}
|
|
|
|
static void
|
|
-do_process_predicate (char *pathname,
|
|
- char *base,
|
|
+do_process_predicate (const char *pathname,
|
|
+ const char *base,
|
|
int mode,
|
|
ino_t inum,
|
|
struct stat *pstat)
|
|
@@ -1095,7 +1093,7 @@ do_process_predicate (char *pathname,
|
|
and move to that.
|
|
*/
|
|
static void
|
|
-process_top_path (char *pathname, mode_t mode, ino_t inum)
|
|
+process_top_path (const char *pathname, mode_t mode, ino_t inum)
|
|
{
|
|
at_top (pathname, mode, inum, NULL, do_process_top_dir);
|
|
}
|
|
@@ -1181,7 +1179,7 @@ issue_loop_warning (const char *name, const char *pathname, int level)
|
|
Return nonzero iff PATHNAME is a directory. */
|
|
|
|
static int
|
|
-process_path (char *pathname, char *name, bool leaf, char *parent,
|
|
+process_path (const char *pathname, const char *name, bool leaf, const char *parent,
|
|
mode_t mode, ino_t inum)
|
|
{
|
|
struct stat stat_buf;
|
|
@@ -1307,7 +1305,7 @@ process_path (char *pathname, char *name, bool leaf, char *parent,
|
|
starting directory. */
|
|
|
|
static void
|
|
-process_dir (char *pathname, char *name, int pathlen, const struct stat *statp, char *parent)
|
|
+process_dir (const char *pathname, const char *name, int pathlen, const struct stat *statp, const char *parent)
|
|
{
|
|
int subdirs_left; /* Number of unexamined subdirs in PATHNAME. */
|
|
bool subdirs_unreliable; /* if true, cannot use dir link count as subdir limif (if false, it may STILL be unreliable) */
|
|
diff --git a/find/util.c b/find/util.c
|
|
index cf7965fc..1b4a07af 100644
|
|
--- a/find/util.c
|
|
+++ b/find/util.c
|
|
@@ -55,9 +55,9 @@
|
|
|
|
struct debug_option_assoc
|
|
{
|
|
- char *name;
|
|
+ const char *name;
|
|
int val;
|
|
- char *docstring;
|
|
+ const char *docstring;
|
|
};
|
|
static struct debug_option_assoc debugassoc[] =
|
|
{
|
|
@@ -176,6 +176,7 @@ usage (FILE *fp, int status, char *msg)
|
|
void
|
|
set_stat_placeholders (struct stat *p)
|
|
{
|
|
+ (void) p; /* silence warning for systems lacking these fields. */
|
|
#if HAVE_STRUCT_STAT_ST_BIRTHTIME
|
|
p->st_birthtime = 0;
|
|
#endif
|
|
--
|
|
2.19.1
|
|
|