Files
haikuports/sys-apps/coreutils/patches/coreutils-8.23.gcc2.patchset
2015-04-02 16:51:13 +00:00

3203 lines
101 KiB
Plaintext

From 2821b057d6fba506fb00a530cfa5c57f6f57fe8f Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Thu, 2 Apr 2015 16:37:05 +0000
Subject: [PATCH] gcc2 c89 patch
---
lib/fts.c | 3 +-
lib/randperm.c | 9 +++--
lib/utimecmp.c | 5 +--
lib/verify.h | 3 +-
src/chown-core.c | 3 +-
src/chroot.c | 10 +++--
src/copy.c | 29 +++++++-------
src/cp.c | 5 ++-
src/csplit.c | 17 +++++---
src/cut.c | 6 ++-
src/dd.c | 14 ++++---
src/df.c | 45 +++++++++++++--------
src/du.c | 12 +++---
src/env.c | 2 +-
src/expr.c | 7 ++--
src/factor.c | 117 ++++++++++++++++++++++++++++++++++---------------------
src/getlimits.c | 3 +-
src/group-list.c | 3 +-
src/head.c | 9 +++--
src/id.c | 12 ++++--
src/install.c | 6 ++-
src/join.c | 9 +++--
src/ls.c | 43 +++++++++++++-------
src/md5sum.c | 5 ++-
src/mkdir.c | 13 ++++---
src/nproc.c | 4 +-
src/numfmt.c | 40 ++++++++++++-------
src/od.c | 2 +-
src/realpath.c | 6 ++-
src/relpath.c | 6 ++-
src/remove.c | 31 +++++++++------
src/rm.c | 9 +++--
src/seq.c | 28 +++++++------
src/shred.c | 40 +++++++++++--------
src/shuf.c | 3 +-
src/sort.c | 73 ++++++++++++++++++++--------------
src/split.c | 32 ++++++++-------
src/stat.c | 38 +++++++++++-------
src/system.h | 6 ++-
src/tac.c | 6 ++-
src/tail.c | 6 ++-
src/test.c | 12 ++++--
src/timeout.c | 4 ++
src/wc.c | 8 ++--
44 files changed, 458 insertions(+), 286 deletions(-)
diff --git a/lib/fts.c b/lib/fts.c
index 500e92c..e2180c7 100644
--- a/lib/fts.c
+++ b/lib/fts.c
@@ -1293,6 +1293,7 @@ fts_build (register FTS *sp, int type)
int dir_fd;
FTSENT *cur = sp->fts_cur;
bool continue_readdir = !!cur->fts_dirp;
+ size_t max_entries;
/* When cur->fts_dirp is non-NULL, that means we should
continue calling readdir on that existing DIR* pointer
@@ -1354,7 +1355,7 @@ fts_build (register FTS *sp, int type)
function. But when no such function is specified, we can read
entries in batches that are large enough to help us with inode-
sorting, yet not so large that we risk exhausting memory. */
- size_t max_entries = (sp->fts_compar == NULL
+ max_entries = (sp->fts_compar == NULL
? FTS_MAX_READDIR_ENTRIES : SIZE_MAX);
/*
diff --git a/lib/randperm.c b/lib/randperm.c
index 1be1351..f21e4b0 100644
--- a/lib/randperm.c
+++ b/lib/randperm.c
@@ -114,8 +114,11 @@ sparse_new (size_t size_hint)
static void
sparse_swap (sparse_map *sv, size_t* v, size_t i, size_t j)
{
- struct sparse_ent_ *v1 = hash_delete (sv, &(struct sparse_ent_) {i,0});
- struct sparse_ent_ *v2 = hash_delete (sv, &(struct sparse_ent_) {j,0});
+ struct sparse_ent_ ent1 = {i,0};
+ struct sparse_ent_ ent2 = {j,0};
+ size_t t;
+ struct sparse_ent_ *v1 = hash_delete (sv, &ent1);
+ struct sparse_ent_ *v2 = hash_delete (sv, &ent2);
/* FIXME: reduce the frequency of these mallocs. */
if (!v1)
@@ -129,7 +132,7 @@ sparse_swap (sparse_map *sv, size_t* v, size_t i, size_t j)
v2->index = v2->val = j;
}
- size_t t = v1->val;
+ t = v1->val;
v1->val = v2->val;
v2->val = t;
if (!hash_insert (sv, v1))
diff --git a/lib/utimecmp.c b/lib/utimecmp.c
index 49ea5f8..15db6b5 100644
--- a/lib/utimecmp.c
+++ b/lib/utimecmp.c
@@ -131,14 +131,13 @@ utimecmp (char const *dst_name,
time_t might be unsigned. */
- verify (TYPE_IS_INTEGER (time_t));
- verify (TYPE_TWOS_COMPLEMENT (int));
-
/* Destination and source time stamps. */
time_t dst_s = dst_stat->st_mtime;
time_t src_s = src_stat->st_mtime;
int dst_ns = get_stat_mtime_ns (dst_stat);
int src_ns = get_stat_mtime_ns (src_stat);
+ verify (TYPE_IS_INTEGER (time_t));
+ verify (TYPE_TWOS_COMPLEMENT (int));
if (options & UTIMECMP_TRUNCATE_SOURCE)
{
diff --git a/lib/verify.h b/lib/verify.h
index a25e514..8425730 100644
--- a/lib/verify.h
+++ b/lib/verify.h
@@ -248,7 +248,8 @@ template <int w>
/* Verify requirement R at compile-time, as a declaration without a
trailing ';'. */
-#define verify(R) _GL_VERIFY (R, "verify (" #R ")")
+//#define verify(R) _GL_VERIFY (R, "verify (" #R ")")
+#define verify(R)
#ifndef __has_builtin
# define __has_builtin(x) 0
diff --git a/src/chown-core.c b/src/chown-core.c
index cdcd53a..cd0c984 100644
--- a/src/chown-core.c
+++ b/src/chown-core.c
@@ -219,6 +219,7 @@ restricted_chown (int cwd_fd, char const *file,
struct stat st;
int open_flags = O_NONBLOCK | O_NOCTTY;
int fd;
+ int saved_errno;
if (required_uid == (uid_t) -1 && required_gid == (gid_t) -1)
return RC_do_ordinary_chown;
@@ -256,7 +257,7 @@ restricted_chown (int cwd_fd, char const *file,
}
}
- int saved_errno = errno;
+ saved_errno = errno;
close (fd);
errno = saved_errno;
return status;
diff --git a/src/chroot.c b/src/chroot.c
index fff0b53..10256e8 100644
--- a/src/chroot.c
+++ b/src/chroot.c
@@ -164,11 +164,11 @@ static bool
is_root (const char* dir)
{
struct dev_ino root_ino;
+ struct stat arg_st;
if (! get_root_dev_ino (&root_ino))
error (EXIT_CANCELED, errno, _("failed to get attributes of %s"),
quote ("/"));
- struct stat arg_st;
if (stat (dir, &arg_st) == -1)
error (EXIT_CANCELED, errno, _("failed to get attributes of %s"),
quote (dir));
@@ -223,6 +223,8 @@ main (int argc, char **argv)
uid_t uid = -1;
gid_t gid = -1;
GETGROUPS_T *out_gids = NULL;
+ GETGROUPS_T *gids;
+ GETGROUPS_T *in_gids = NULL;
size_t n_gids = 0;
initialize_main (&argc, &argv);
@@ -240,11 +242,12 @@ main (int argc, char **argv)
{
case USERSPEC:
{
+ size_t userlen;
userspec = optarg;
/* Treat 'user:' just like 'user'
as we lookup the primary group by default
(and support doing so for UIDs as well as names. */
- size_t userlen = strlen (userspec);
+ userlen = strlen (userspec);
if (userlen && userspec[userlen - 1] == ':')
userspec[userlen - 1] = '\0';
break;
@@ -359,8 +362,7 @@ main (int argc, char **argv)
}
}
- GETGROUPS_T *gids = out_gids;
- GETGROUPS_T *in_gids = NULL;
+ gids = out_gids;
if (groups && *groups)
{
if (parse_additional_groups (groups, &in_gids, &n_gids, !n_gids) != 0)
diff --git a/src/copy.c b/src/copy.c
index 26d5bdd..f78d62a 100644
--- a/src/copy.c
+++ b/src/copy.c
@@ -301,13 +301,15 @@ extent_copy (int src_fd, int dest_fd, char *buf, size_t buf_size,
/* Keep track of the output position.
We may need this at the end, for a final ftruncate. */
off_t dest_pos = 0;
-
+ bool wrote_hole_at_eof = true;
+
extent_scan_init (src_fd, &scan);
*require_normal_copy = false;
- bool wrote_hole_at_eof = true;
do
{
+ unsigned int i;
+ bool empty_extent = false;
bool ok = extent_scan_read (&scan);
if (! ok)
{
@@ -325,8 +327,6 @@ extent_copy (int src_fd, int dest_fd, char *buf, size_t buf_size,
return false;
}
- unsigned int i;
- bool empty_extent = false;
for (i = 0; i < scan.ei_count || empty_extent; i++)
{
off_t ext_start;
@@ -597,6 +597,7 @@ copy_dir (char const *src_name_in, char const *dst_name_in, bool new_dst,
char *namep;
struct cp_options non_command_line_options = *x;
bool ok = true;
+ bool new_first_dir_created = false;
name_space = savedir (src_name_in, SAVEDIR_SORT_FASTREAD);
if (name_space == NULL)
@@ -612,7 +613,6 @@ copy_dir (char const *src_name_in, char const *dst_name_in, bool new_dst,
if (x->dereference == DEREF_COMMAND_LINE_ARGUMENTS)
non_command_line_options.dereference = DEREF_NEVER;
- bool new_first_dir_created = false;
namep = name_space;
while (*namep != '\0')
{
@@ -999,7 +999,7 @@ copy_reg (char const *src_name, char const *dst_name,
if (*new_dst)
{
open_with_O_CREAT:;
-
+{
int open_flags = O_WRONLY | O_CREAT | O_BINARY;
dest_desc = open (dst_name, open_flags | O_EXCL,
dst_mode & ~omitted_permissions);
@@ -1043,6 +1043,7 @@ copy_reg (char const *src_name, char const *dst_name,
&& *dst_name && dst_name[strlen (dst_name) - 1] == '/')
dest_errno = ENOTDIR;
}
+ }
else
{
omitted_permissions = 0;
@@ -1105,12 +1106,14 @@ copy_reg (char const *src_name, char const *dst_name,
size_t buf_alignment = lcm (getpagesize (), sizeof (word));
size_t buf_alignment_slop = sizeof (word) + buf_alignment - 1;
size_t buf_size = io_blksize (sb);
+ bool make_holes = false;
+ bool sparse_src = false;
+ off_t n_read;
+ bool wrote_hole_at_eof;
fdadvise (source_desc, 0, 0, FADVISE_SEQUENTIAL);
/* Deal with sparse files. */
- bool make_holes = false;
- bool sparse_src = false;
if (S_ISREG (sb.st_mode))
{
@@ -1177,8 +1180,6 @@ copy_reg (char const *src_name, char const *dst_name,
}
}
- off_t n_read;
- bool wrote_hole_at_eof;
if ( ! sparse_copy (source_desc, dest_desc, buf, buf_size,
make_holes, src_name, dst_name,
UINTMAX_MAX, &n_read,
@@ -1680,10 +1681,11 @@ create_hard_link (char const *src_name, char const *dst_name,
{
/* We want to guarantee that symlinks are not followed, unless requested. */
int flags = 0;
+ bool link_failed;
if (dereference)
flags = AT_SYMLINK_FOLLOW;
- bool link_failed = (linkat (AT_FDCWD, src_name, AT_FDCWD, dst_name, flags)
+ link_failed = (linkat (AT_FDCWD, src_name, AT_FDCWD, dst_name, flags)
!= 0);
/* If the link failed because of an existing destination,
@@ -1758,6 +1760,7 @@ copy_internal (char const *src_name, char const *dst_name,
bool copied_as_regular = false;
bool dest_is_symlink = false;
bool have_dst_lstat = false;
+ bool dereference;
if (x->move_mode && rename_succeeded)
*rename_succeeded = false;
@@ -1796,7 +1799,7 @@ copy_internal (char const *src_name, char const *dst_name,
record_file (x->src_info, src_name, &src_sb);
}
- bool dereference = should_dereference (x, command_line_arg);
+ dereference = should_dereference (x, command_line_arg);
if (!new_dst)
{
@@ -2814,6 +2817,7 @@ copy (char const *src_name, char const *dst_name,
bool nonexistent_dst, const struct cp_options *options,
bool *copy_into_self, bool *rename_succeeded)
{
+ bool first_dir_created_per_command_line_arg = false;
assert (valid_options (options));
/* Record the file names: they're used in case of error, when copying
@@ -2826,7 +2830,6 @@ copy (char const *src_name, char const *dst_name,
top_level_src_name = src_name;
top_level_dst_name = dst_name;
- bool first_dir_created_per_command_line_arg = false;
return copy_internal (src_name, dst_name, nonexistent_dst, NULL, NULL,
options, true,
&first_dir_created_per_command_line_arg,
diff --git a/src/cp.c b/src/cp.c
index 99cafa7..5f506a4 100644
--- a/src/cp.c
+++ b/src/cp.c
@@ -825,6 +825,7 @@ cp_option_init (struct cp_options *x)
static void
decode_preserve_arg (char const *arg, struct cp_options *x, bool on_off)
{
+ char *arg_writable, *s;
enum File_attribute
{
PRESERVE_MODE,
@@ -849,8 +850,8 @@ decode_preserve_arg (char const *arg, struct cp_options *x, bool on_off)
};
ARGMATCH_VERIFY (preserve_args, preserve_vals);
- char *arg_writable = xstrdup (arg);
- char *s = arg_writable;
+ arg_writable = xstrdup (arg);
+ s = arg_writable;
do
{
/* find next comma */
diff --git a/src/csplit.c b/src/csplit.c
index a30f09b..3b1b20a 100644
--- a/src/csplit.c
+++ b/src/csplit.c
@@ -1225,8 +1225,9 @@ static size_t
get_format_flags (char const *format, int *flags_ptr)
{
int flags = 0;
+ size_t count;
- for (size_t count = 0; ; count++)
+ for (count = 0; ; count++)
{
switch (format[count])
{
@@ -1300,15 +1301,17 @@ static size_t
max_out (char *format)
{
bool percent = false;
+ char *f;
+ int maxlen;
- for (char *f = format; *f; f++)
+ for (f = format; *f; f++)
if (*f == '%' && *++f != '%')
{
+ int flags;
if (percent)
error (EXIT_FAILURE, 0,
_("too many %% conversion specifications in suffix"));
percent = true;
- int flags;
f += get_format_flags (f, &flags);
while (ISDIGIT (*f))
f++;
@@ -1322,7 +1325,7 @@ max_out (char *format)
error (EXIT_FAILURE, 0,
_("missing %% conversion specification in suffix"));
- int maxlen = snprintf (NULL, 0, format, UINT_MAX);
+ maxlen = snprintf (NULL, 0, format, UINT_MAX);
if (! (0 <= maxlen && maxlen <= SIZE_MAX))
xalloc_die ();
return maxlen;
@@ -1333,6 +1336,8 @@ main (int argc, char **argv)
{
int optc;
unsigned long int val;
+ size_t prefix_len;
+ size_t max_digit_string_len;
initialize_main (&argc, &argv);
set_program_name (argv[0]);
@@ -1402,8 +1407,8 @@ main (int argc, char **argv)
usage (EXIT_FAILURE);
}
- size_t prefix_len = strlen (prefix);
- size_t max_digit_string_len
+ prefix_len = strlen (prefix);
+ max_digit_string_len
= (suffix
? max_out (suffix)
: MAX (INT_STRLEN_BOUND (unsigned int), digits));
diff --git a/src/cut.c b/src/cut.c
index 312551f..15a24ea 100644
--- a/src/cut.c
+++ b/src/cut.c
@@ -399,7 +399,8 @@ set_fields (const char *fieldstr)
/* Merge range pairs (e.g. `2-5,3-4' becomes `2-5'). */
for (i = 0; i < n_rp; ++i)
{
- for (size_t j = i + 1; j < n_rp; ++j)
+ size_t j;
+ for (j = i + 1; j < n_rp; ++j)
{
if (rp[j].lo <= rp[i].hi)
{
@@ -534,6 +535,7 @@ cut_fields (FILE *stream)
while (1)
{
+ int prev_c;
if (field_idx == 1 && buffer_first_field)
{
ssize_t len;
@@ -595,7 +597,7 @@ cut_fields (FILE *stream)
next_item (&field_idx);
}
- int prev_c = c;
+ prev_c = c;
if (print_kth (field_idx))
{
diff --git a/src/dd.c b/src/dd.c
index 1e387f3..4b5f392 100644
--- a/src/dd.c
+++ b/src/dd.c
@@ -667,10 +667,11 @@ human_size (size_t n)
static void
alloc_ibuf (void)
{
+ char *real_buf;
if (ibuf)
return;
- char *real_buf = malloc (input_blocksize + INPUT_BLOCK_SLOP);
+ real_buf = malloc (input_blocksize + INPUT_BLOCK_SLOP);
if (!real_buf)
error (EXIT_FAILURE, 0,
_("memory exhausted by input buffer of size %zu bytes (%s)"),
@@ -740,6 +741,7 @@ print_stats (void)
| human_space_before_unit | human_SI | human_B);
double delta_s;
char const *bytes_per_second;
+ xtime_t now;
if (status_flags & STATUS_NONE)
return;
@@ -769,7 +771,7 @@ print_stats (void)
w_bytes,
human_readable (w_bytes, hbuf, human_opts, 1, 1));
- xtime_t now = gethrxtime ();
+ now = gethrxtime ();
if (start_time < now)
{
double XTIME_PRECISIONe0 = XTIME_PRECISION;
@@ -959,6 +961,7 @@ static bool
invalidate_cache (int fd, off_t len)
{
int adv_ret = -1;
+ off_t pending;
/* Minimize syscalls. */
off_t clen = cache_round (fd, len);
@@ -966,7 +969,7 @@ invalidate_cache (int fd, off_t len)
return true; /* Don't advise this time. */
if (!len && !clen && max_records)
return true; /* Nothing pending. */
- off_t pending = len ? cache_round (fd, 0) : 0;
+ pending = len ? cache_round (fd, 0) : 0;
if (fd == STDIN_FILENO)
{
@@ -1642,6 +1645,7 @@ skip (int fdesc, char const *file, uintmax_t records, size_t blocksize,
}
else
{
+ char *buf;
int lseek_errno = errno;
/* The seek request may have failed above if it was too big
@@ -1676,7 +1680,6 @@ skip (int fdesc, char const *file, uintmax_t records, size_t blocksize,
}
/* else file_size && offset > OFF_T_MAX or file ! seekable */
- char *buf;
if (fdesc == STDIN_FILENO)
{
alloc_ibuf ();
@@ -2023,8 +2026,9 @@ dd_copy (void)
if (conversions_mask & C_NOERROR)
{
+ size_t bad_portion;
print_stats ();
- size_t bad_portion = input_blocksize - partread;
+ bad_portion = input_blocksize - partread;
/* We already know this data is not cached,
but call this so that correct offsets are maintained. */
diff --git a/src/df.c b/src/df.c
index 3ef5d33..e6dab99 100644
--- a/src/df.c
+++ b/src/df.c
@@ -309,6 +309,8 @@ print_table (void)
for (col = 0; col < ncolumns; col++)
{
char *cell = table[row][col];
+ int flags;
+ size_t width;
/* Note the SOURCE_FIELD used to be displayed on it's own line
if (!posix_format && mbswidth (cell) > 20), but that
@@ -317,11 +319,11 @@ print_table (void)
if (col != 0)
putchar (' ');
- int flags = 0;
+ flags = 0;
if (col == ncolumns - 1) /* The last one. */
flags = MBA_NO_RIGHT_PAD;
- size_t width = columns[col]->width;
+ width = columns[col]->width;
cell = ambsalign (cell, &width, columns[col]->align, flags);
/* When ambsalign fails, output unaligned data. */
fputs (cell ? cell : table[row][col], stdout);
@@ -366,6 +368,8 @@ decode_output_arg (char const *arg)
do
{
/* find next comma */
+ display_field_t field;
+ unsigned int i;
char *comma = strchr (s, ',');
/* If we found a comma, put a NUL in its place and advance. */
@@ -373,8 +377,8 @@ decode_output_arg (char const *arg)
*comma++ = 0;
/* process S. */
- display_field_t field = INVALID_FIELD;
- for (unsigned int i = 0; i < ARRAY_CARDINALITY (field_data); i++)
+ field = INVALID_FIELD;
+ for (i = 0; i < ARRAY_CARDINALITY (field_data); i++)
{
if (STREQ (field_data[i].arg, s))
{
@@ -526,6 +530,7 @@ get_header (void)
uintmax_t q1024 = output_block_size;
bool divisible_by_1000;
bool divisible_by_1024;
+ char *num;
do
{
@@ -541,7 +546,7 @@ get_header (void)
if (! (opts & human_base_1024))
opts |= human_B;
- char *num = human_readable (output_block_size, buf, opts, 1, 1);
+ num = human_readable (output_block_size, buf, opts, 1, 1);
/* Reset the header back to the default in OUTPUT_MODE. */
header = _("blocks");
@@ -685,12 +690,13 @@ filter_mount_list (bool devices_only)
mount_list = NULL;
while (device_list)
{
+ struct devlist *devlist;
/* Add the mount entry. */
me = device_list->me;
me->me_next = mount_list;
mount_list = me;
/* Free devlist entry and advance. */
- struct devlist *devlist = device_list->next;
+ devlist = device_list->next;
free (device_list);
device_list = devlist;
}
@@ -875,6 +881,12 @@ get_dev (char const *disk, char const *mount_point, char const* file,
const struct fs_usage *force_fsu,
bool process_all)
{
+ struct fs_usage fsu;
+ char *dev_name;
+ char *resolved_dev;
+ struct field_values_t block_values;
+ struct field_values_t inode_values;
+ size_t col;
if (me_remote && show_local_fs)
return;
@@ -896,7 +908,6 @@ get_dev (char const *disk, char const *mount_point, char const* file,
if (!stat_file)
stat_file = mount_point ? mount_point : disk;
- struct fs_usage fsu;
if (force_fsu)
fsu = *force_fsu;
else if (get_fs_usage (stat_file, disk, &fsu))
@@ -951,9 +962,8 @@ get_dev (char const *disk, char const *mount_point, char const* file,
if (! file)
file = "-"; /* unspecified */
- char *dev_name = xstrdup (disk);
- char *resolved_dev;
-
+ dev_name = xstrdup (disk);
+
/* On some systems, dev_name is a long-named symlink like
/dev/disk/by-uuid/828fc648-9f30-43d8-a0b1-f7196a2edb66 pointing to a
much shorter and more useful name like /dev/sda1. It may also look
@@ -971,15 +981,12 @@ get_dev (char const *disk, char const *mount_point, char const* file,
if (! fstype)
fstype = "-"; /* unknown */
- struct field_values_t block_values;
- struct field_values_t inode_values;
get_field_values (&block_values, &inode_values, &fsu);
/* Add to grand total unless processing grand total line. */
if (print_grand_total && ! force_fsu)
add_to_grand_total (&block_values, &inode_values);
- size_t col;
for (col = 0; col < ncolumns; col++)
{
char buf[LONGEST_HUMAN_READABLE + 2];
@@ -1151,12 +1158,13 @@ get_disk (char const *disk)
bool best_match_accessible = false;
bool eclipsed_device = false;
char const *file = disk;
+ size_t best_match_len;
char *resolved = canonicalize_file_name (disk);
if (resolved && IS_ABSOLUTE_FILE_NAME (resolved))
disk = resolved;
- size_t best_match_len = SIZE_MAX;
+ best_match_len = SIZE_MAX;
for (me = mount_list; me; me = me->me_next)
{
/* TODO: Should cache canon_dev in the mount_entry struct. */
@@ -1434,6 +1442,8 @@ int
main (int argc, char **argv)
{
struct stat *stats IF_LINT ( = 0);
+ bool posix_format;
+ const char *msg_mut_excl;
initialize_main (&argc, &argv);
set_program_name (argv[0]);
@@ -1455,9 +1465,9 @@ main (int argc, char **argv)
grand_fsu.fsu_blocksize = 1;
/* If true, use the POSIX output format. */
- bool posix_format = false;
+ posix_format = false;
- const char *msg_mut_excl = _("options %s and %s are mutually exclusive");
+ msg_mut_excl = _("options %s and %s are mutually exclusive");
while (true)
{
@@ -1657,6 +1667,7 @@ main (int argc, char **argv)
or when either of -a, -l, -t or -x is used with file name
arguments. Otherwise, merely give a warning and proceed. */
int status = 0;
+ const char *warning;
if ( ! (optind < argc)
|| (show_all_fs
|| show_local_fs
@@ -1665,7 +1676,7 @@ main (int argc, char **argv)
{
status = EXIT_FAILURE;
}
- const char *warning = (status == 0 ? _("Warning: ") : "");
+ warning = (status == 0 ? _("Warning: ") : "");
error (status, errno, "%s%s", warning,
_("cannot read table of mounted file systems"));
}
diff --git a/src/du.c b/src/du.c
index 0966326..532c64b 100644
--- a/src/du.c
+++ b/src/du.c
@@ -461,8 +461,9 @@ process_file (FTS *fts, FTSENT *ent)
if (info == FTS_NSOK)
{
+ FTSENT const *e;
fts_set (fts, ent, FTS_AGAIN);
- FTSENT const *e = fts_read (fts);
+ e = fts_read (fts);
assert (e == ent);
info = ent->fts_info;
}
@@ -494,8 +495,9 @@ process_file (FTS *fts, FTSENT *ent)
visit to the same directory. */
if (info == FTS_D)
{
+ FTSENT const *e;
fts_set (fts, ent, FTS_SKIP);
- FTSENT const *e = fts_read (fts);
+ e = fts_read (fts);
assert (e == ent);
}
@@ -703,6 +705,8 @@ main (int argc, char **argv)
/* If true, display only a total for each argument. */
bool opt_summarize_only = false;
+ struct argv_iterator *ai;
+ static char *temp_argv[] = { NULL, NULL };
cwd_only[0] = bad_cast (".");
cwd_only[1] = NULL;
@@ -975,7 +979,6 @@ main (int argc, char **argv)
}
}
- struct argv_iterator *ai;
if (files_from)
{
/* When using --files0-from=F, you may not specify any files
@@ -1030,8 +1033,7 @@ main (int argc, char **argv)
bit_flags |= FTS_TIGHT_CYCLE_CHECK;
bit_flags |= symlink_deref_bits;
- static char *temp_argv[] = { NULL, NULL };
-
+
while (true)
{
bool skip_file = false;
diff --git a/src/env.c b/src/env.c
index 2b37d98..7bd924d 100644
--- a/src/env.c
+++ b/src/env.c
@@ -80,6 +80,7 @@ main (int argc, char **argv)
int optc;
bool ignore_environment = false;
bool opt_nul_terminate_output = false;
+ char *eq;
initialize_main (&argc, &argv);
set_program_name (argv[0]);
@@ -126,7 +127,6 @@ main (int argc, char **argv)
if (optind < argc && STREQ (argv[optind], "-"))
++optind;
- char *eq;
while (optind < argc && (eq = strchr (argv[optind], '=')))
{
if (putenv (argv[optind]))
diff --git a/src/expr.c b/src/expr.c
index a97663a..efcdd0a 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -115,8 +115,8 @@ mpz_tdiv_r (mpz_t r, mpz_t a0, mpz_t b0)
static char *
mpz_get_str (char const *str, int base, mpz_t z)
{
- (void) str; (void) base;
char buf[INT_BUFSIZE_BOUND (intmax_t)];
+ (void) str; (void) base;
return xstrdup (imaxtostr (z[0], buf));
}
static int
@@ -137,8 +137,8 @@ mpz_get_ui (mpz_t z)
static int
mpz_out_str (FILE *stream, int base, mpz_t z)
{
- (void) base;
char buf[INT_BUFSIZE_BOUND (intmax_t)];
+ (void) base;
return fputs (imaxtostr (z[0], buf), stream) != EOF;
}
#endif
@@ -291,6 +291,7 @@ int
main (int argc, char **argv)
{
VALUE *v;
+ unsigned int u_argc;
initialize_main (&argc, &argv);
set_program_name (argv[0]);
@@ -306,7 +307,7 @@ main (int argc, char **argv)
/* The above handles --help and --version.
Since there is no other invocation of getopt, handle '--' here. */
- unsigned int u_argc = argc;
+ u_argc = argc;
if (1 < u_argc && STREQ (argv[1], "--"))
{
--u_argc;
diff --git a/src/factor.c b/src/factor.c
index 63924d5..d7072fb 100644
--- a/src/factor.c
+++ b/src/factor.c
@@ -281,12 +281,13 @@ static void factor (uintmax_t, uintmax_t, struct factors *);
# define udiv_qrnnd(q, r, n1, n0, d) \
do { \
uintmax_t __d1, __d0, __q, __r1, __r0; \
+ unsigned int __i; \
\
assert ((n1) < (d)); \
__d1 = (d); __d0 = 0; \
__r1 = (n1); __r0 = (n0); \
__q = 0; \
- for (unsigned int __i = W_TYPE_SIZE; __i > 0; __i--) \
+ for (__i = W_TYPE_SIZE; __i > 0; __i--) \
{ \
rsh2 (__d1, __d0, __d1, __d0, 1); \
__q <<= 1; \
@@ -404,6 +405,7 @@ static uintmax_t
mod2 (uintmax_t *r1, uintmax_t a1, uintmax_t a0, uintmax_t d1, uintmax_t d0)
{
int cntd, cnta;
+ int cnt, i;
assert (d1 != 0);
@@ -415,9 +417,9 @@ mod2 (uintmax_t *r1, uintmax_t a1, uintmax_t a0, uintmax_t d1, uintmax_t d0)
count_leading_zeros (cntd, d1);
count_leading_zeros (cnta, a1);
- int cnt = cntd - cnta;
+ cnt = cntd - cnta;
lsh2 (d1, d0, d1, d0, cnt);
- for (int i = 0; i < cnt; i++)
+ for (i = 0; i < cnt; i++)
{
if (ge2 (a1, a0, d1, d0))
sub_ddmmss (a1, a0, a1, a0, d1, d0);
@@ -522,7 +524,8 @@ factor_insert_multiplicity (struct factors *factors,
if (i < 0 || p[i] != prime)
{
- for (int j = nfactors - 1; j > i; j--)
+ int j;
+ for (j = nfactors - 1; j > i; j--)
{
p[j + 1] = p[j];
e[j + 1] = e[j];
@@ -695,19 +698,20 @@ static bool flag_prove_primality = true;
/* Number of Miller-Rabin tests to run when not proving primality. */
#define MR_REPS 25
-#ifdef __GNUC__
-# define LIKELY(cond) __builtin_expect ((cond), 1)
-# define UNLIKELY(cond) __builtin_expect ((cond), 0)
-#else
+//#ifdef __GNUC__
+//# define LIKELY(cond) __builtin_expect ((cond), 1)
+//# define UNLIKELY(cond) __builtin_expect ((cond), 0)
+//#else
# define LIKELY(cond) (cond)
# define UNLIKELY(cond) (cond)
-#endif
+//#endif
static void
factor_insert_refind (struct factors *factors, uintmax_t p, unsigned int i,
unsigned int off)
{
- for (unsigned int j = 0; j < off; j++)
+ unsigned int j;
+ for (j = 0; j < off; j++)
p += primes_diff[i + j];
factor_insert (factors, p);
}
@@ -749,6 +753,8 @@ static uintmax_t
factor_using_division (uintmax_t *t1p, uintmax_t t1, uintmax_t t0,
struct factors *factors)
{
+ uintmax_t p = 3;
+ unsigned int i;
if (t0 % 2 == 0)
{
unsigned int cnt;
@@ -769,8 +775,6 @@ factor_using_division (uintmax_t *t1p, uintmax_t t1, uintmax_t t0,
factor_insert_multiplicity (factors, 2, cnt);
}
- uintmax_t p = 3;
- unsigned int i;
for (i = 0; t1 > 0 && i < PRIMES_PTAB_ENTRIES; i++)
{
for (;;)
@@ -832,6 +836,7 @@ mp_factor_using_division (mpz_t t, struct mp_factors *factors)
{
mpz_t q;
unsigned long int p;
+ unsigned int i;
devmsg ("[trial division] ");
@@ -846,7 +851,7 @@ mp_factor_using_division (mpz_t t, struct mp_factors *factors)
}
p = 3;
- for (unsigned int i = 1; i <= PRIMES_PTAB_ENTRIES;)
+ for (i = 1; i <= PRIMES_PTAB_ENTRIES;)
{
if (! mpz_divisible_ui_p (t, p))
{
@@ -1116,11 +1121,12 @@ millerrabin (uintmax_t n, uintmax_t ni, uintmax_t b, uintmax_t q,
uintmax_t y = powm (b, q, n, ni, one);
uintmax_t nm1 = n - one; /* -1, but in redc representation. */
+ unsigned int i;
if (y == one || y == nm1)
return true;
- for (unsigned int i = 1; i < k; i++)
+ for (i = 1; i < k; i++)
{
y = mulredc (y, y, n, ni);
@@ -1137,6 +1143,7 @@ millerrabin2 (const uintmax_t *np, uintmax_t ni, const uintmax_t *bp,
const uintmax_t *qp, unsigned int k, const uintmax_t *one)
{
uintmax_t y1, y0, nm1_1, nm1_0, r1m;
+ unsigned int i;
y0 = powm2 (&r1m, bp, qp, np, ni, one);
y1 = r1m;
@@ -1149,7 +1156,7 @@ millerrabin2 (const uintmax_t *np, uintmax_t ni, const uintmax_t *bp,
if (y0 == nm1_0 && y1 == nm1_1)
return true;
- for (unsigned int i = 1; i < k; i++)
+ for (i = 1; i < k; i++)
{
y0 = mulredc2 (&r1m, y1, y0, y1, y0, np[1], np[0], ni);
y1 = r1m;
@@ -1167,12 +1174,13 @@ static bool
mp_millerrabin (mpz_srcptr n, mpz_srcptr nm1, mpz_ptr x, mpz_ptr y,
mpz_srcptr q, unsigned long int k)
{
+ unsigned long int i;
mpz_powm (y, x, q, n);
if (mpz_cmp_ui (y, 1) == 0 || mpz_cmp (y, nm1) == 0)
return true;
- for (unsigned long int i = 1; i < k; i++)
+ for (i = 1; i < k; i++)
{
mpz_powm_ui (y, y, 2, n);
if (mpz_cmp (y, nm1) == 0)
@@ -1193,6 +1201,8 @@ prime_p (uintmax_t n)
bool is_prime;
uintmax_t a_prim, one, ni;
struct factors factors;
+ uintmax_t q, a;
+ unsigned int r;
if (n <= 1)
return false;
@@ -1202,11 +1212,11 @@ prime_p (uintmax_t n)
return true;
/* Precomputation for Miller-Rabin. */
- uintmax_t q = n - 1;
+ q = n - 1;
for (k = 0; (q & 1) == 0; k++)
q >>= 1;
- uintmax_t a = 2;
+ a = 2;
binv (ni, n); /* ni <- 1/n mod B */
redcify (one, 1, n);
addmod (a_prim, one, one, n); /* i.e., redcify a = 2 */
@@ -1223,12 +1233,13 @@ prime_p (uintmax_t n)
/* Loop until Lucas proves our number prime, or Miller-Rabin proves our
number composite. */
- for (unsigned int r = 0; r < PRIMES_PTAB_ENTRIES; r++)
+ for (r = 0; r < PRIMES_PTAB_ENTRIES; r++)
{
if (flag_prove_primality)
{
+ unsigned int i;
is_prime = true;
- for (unsigned int i = 0; i < factors.nfactors && is_prime; i++)
+ for (i = 0; i < factors.nfactors && is_prime; i++)
{
is_prime
= powm (a_prim, (n - 1) / factors.p[i], n, ni, one) != one;
@@ -1278,6 +1289,8 @@ prime2_p (uintmax_t n1, uintmax_t n0)
uintmax_t ni;
unsigned int k;
struct factors factors;
+ unsigned int r;
+ uintmax_t a;
if (n1 == 0)
return prime_p (n0);
@@ -1298,7 +1311,7 @@ prime2_p (uintmax_t n1, uintmax_t n0)
rsh2 (q[1], q[0], nm1[1], nm1[0], k);
}
- uintmax_t a = 2;
+ a = 2;
binv (ni, n0);
redcify2 (one[1], one[0], 1, n1, n0);
addmod2 (a_prim[1], a_prim[0], one[1], one[0], one[1], one[0], n1, n0);
@@ -1318,13 +1331,14 @@ prime2_p (uintmax_t n1, uintmax_t n0)
/* Loop until Lucas proves our number prime, or Miller-Rabin proves our
number composite. */
- for (unsigned int r = 0; r < PRIMES_PTAB_ENTRIES; r++)
+ for (r = 0; r < PRIMES_PTAB_ENTRIES; r++)
{
bool is_prime;
uintmax_t e[2], y[2];
if (flag_prove_primality)
{
+ unsigned int i;
is_prime = true;
if (factors.plarge[1])
{
@@ -1335,7 +1349,7 @@ prime2_p (uintmax_t n1, uintmax_t n0)
y[0] = powm2 (&y[1], a_prim, e, na, ni, one);
is_prime = (y[0] != one[0] || y[1] != one[1]);
}
- for (unsigned int i = 0; i < factors.nfactors && is_prime; i++)
+ for (i = 0; i < factors.nfactors && is_prime; i++)
{
/* FIXME: We always have the factor 2. Do we really need to
handle it here? We have done the same powering as part
@@ -1375,6 +1389,8 @@ mp_prime_p (mpz_t n)
bool is_prime;
mpz_t q, a, nm1, tmp;
struct mp_factors factors;
+ unsigned long int k;
+ unsigned int r;
if (mpz_cmp_ui (n, 1) <= 0)
return false;
@@ -1389,7 +1405,7 @@ mp_prime_p (mpz_t n)
mpz_sub_ui (nm1, n, 1);
/* Find q and k, where q is odd and n = 1 + 2**k * q. */
- unsigned long int k = mpz_scan1 (nm1, 0);
+ k = mpz_scan1 (nm1, 0);
mpz_tdiv_q_2exp (q, nm1, k);
mpz_set_ui (a, 2);
@@ -1410,12 +1426,13 @@ mp_prime_p (mpz_t n)
/* Loop until Lucas proves our number prime, or Miller-Rabin proves our
number composite. */
- for (unsigned int r = 0; r < PRIMES_PTAB_ENTRIES; r++)
+ for (r = 0; r < PRIMES_PTAB_ENTRIES; r++)
{
if (flag_prove_primality)
{
+ unsigned long int i;
is_prime = true;
- for (unsigned long int i = 0; i < factors.nfactors && is_prime; i++)
+ for (i = 0; i < factors.nfactors && is_prime; i++)
{
mpz_divexact (tmp, nm1, factors.p[i]);
mpz_powm (tmp, a, tmp, n);
@@ -1474,6 +1491,7 @@ factor_using_pollard_rho (uintmax_t n, unsigned long int a,
for (;;)
{
+ unsigned long int i;
do
{
x = mulredc (x, x, n, ni);
@@ -1494,7 +1512,7 @@ factor_using_pollard_rho (uintmax_t n, unsigned long int a,
z = x;
k = l;
l = 2 * l;
- for (unsigned long int i = 0; i < k; i++)
+ for (i = 0; i < k; i++)
{
x = mulredc (x, x, n, ni);
addmod (x, x, a, n);
@@ -1552,6 +1570,7 @@ factor_using_pollard_rho2 (uintmax_t n1, uintmax_t n0, unsigned long int a,
for (;;)
{
+ unsigned long int i;
do
{
x0 = mulredc2 (&r1m, x1, x0, x1, x0, n1, n0, ni);
@@ -1575,7 +1594,7 @@ factor_using_pollard_rho2 (uintmax_t n1, uintmax_t n0, unsigned long int a,
z1 = x1; z0 = x0;
k = l;
l = 2 * l;
- for (unsigned long int i = 0; i < k; i++)
+ for (i = 0; i < k; i++)
{
x0 = mulredc2 (&r1m, x1, x0, x1, x0, n1, n0, ni);
x1 = r1m;
@@ -1653,6 +1672,8 @@ mp_factor_using_pollard_rho (mpz_t n, unsigned long int a,
{
mpz_t x, z, y, P;
mpz_t t, t2;
+ unsigned long long int k = 1;
+ unsigned long long int l = 1;
devmsg ("[pollard-rho (%lu)] ", a);
@@ -1662,13 +1683,11 @@ mp_factor_using_pollard_rho (mpz_t n, unsigned long int a,
mpz_init_set_si (z, 2);
mpz_init_set_ui (P, 1);
- unsigned long long int k = 1;
- unsigned long long int l = 1;
-
while (mpz_cmp_ui (n, 1) != 0)
{
for (;;)
{
+ unsigned long long int i;
do
{
mpz_mul (t, x, x);
@@ -1692,7 +1711,7 @@ mp_factor_using_pollard_rho (mpz_t n, unsigned long int a,
mpz_set (z, x);
k = l;
l = 2 * l;
- for (unsigned long long int i = 0; i < k; i++)
+ for (i = 0; i < k; i++)
{
mpz_mul (t, x, x);
mpz_mod (x, t, n);
@@ -1959,13 +1978,14 @@ factor_using_squfof (uintmax_t n1, uintmax_t n0, struct factors *factors)
};
const unsigned int *m;
+ uintmax_t sqrt_n;
struct { uintmax_t Q; uintmax_t P; } queue[QUEUE_SIZE];
if (n1 >= ((uintmax_t) 1 << (W_TYPE_SIZE - 2)))
return false;
- uintmax_t sqrt_n = isqrt2 (n1, n0);
+ sqrt_n = isqrt2 (n1, n0);
if (n0 == sqrt_n * sqrt_n)
{
@@ -1981,6 +2001,7 @@ factor_using_squfof (uintmax_t n1, uintmax_t n0, struct factors *factors)
else
{
struct factors f;
+ unsigned int i;
f.nfactors = 0;
if (!factor_using_squfof (0, sqrt_n, &f))
@@ -1989,7 +2010,7 @@ factor_using_squfof (uintmax_t n1, uintmax_t n0, struct factors *factors)
factor_using_pollard_rho (sqrt_n, 1, &f);
}
/* Duplicate the new factors */
- for (unsigned int i = 0; i < f.nfactors; i++)
+ for (i = 0; i < f.nfactors; i++)
factor_insert_multiplicity (factors, f.p[i], 2*f.e[i]);
}
return true;
@@ -2092,7 +2113,9 @@ factor_using_squfof (uintmax_t n1, uintmax_t n0, struct factors *factors)
uintmax_t r = is_square (Q);
if (r)
{
- for (unsigned int j = 0; j < qpos; j++)
+ unsigned int j;
+ uintmax_t hi, lo;
+ for (j = 0; j < qpos; j++)
{
if (queue[j].Q == r)
{
@@ -2127,7 +2150,6 @@ factor_using_squfof (uintmax_t n1, uintmax_t n0, struct factors *factors)
for the case D = 2N. */
/* Compute Q = (D - P*P) / Q1, but we need double
precision. */
- uintmax_t hi, lo;
umul_ppmm (hi, lo, P, P);
sub_ddmmss (hi, lo, Dh, Dl, hi, lo);
udiv_qrnnd (Q, rem, hi, lo, Q1);
@@ -2253,6 +2275,7 @@ strto2uintmax (uintmax_t *hip, uintmax_t *lop, const char *s)
uintmax_t hi = 0, lo = 0;
strtol_error err = LONGINT_INVALID;
+ const char *p;
/* Skip initial spaces and '+'. */
for (;;)
@@ -2270,7 +2293,7 @@ strto2uintmax (uintmax_t *hip, uintmax_t *lop, const char *s)
}
/* Initial scan for invalid digits. */
- const char *p = s;
+ p = s;
for (;;)
{
unsigned int c = *p++;
@@ -2346,14 +2369,15 @@ static void
print_factors_single (uintmax_t t1, uintmax_t t0)
{
struct factors factors;
+ unsigned int j, k;
print_uintmaxes (t1, t0);
putchar (':');
factor (t1, t0, &factors);
- for (unsigned int j = 0; j < factors.nfactors; j++)
- for (unsigned int k = 0; k < factors.e[j]; k++)
+ for (j = 0; j < factors.nfactors; j++)
+ for (k = 0; k < factors.e[j]; k++)
{
char buf[INT_BUFSIZE_BOUND (uintmax_t)];
putchar (' ');
@@ -2377,6 +2401,7 @@ static bool
print_factors (const char *input)
{
uintmax_t t1, t0;
+ unsigned int j, k;
/* Try converting the number to one or two words. If it fails, use GMP or
print an error message. The 2nd condition checks that the most
@@ -2414,8 +2439,8 @@ print_factors (const char *input)
gmp_printf ("%Zd:", t);
mp_factor (t, &factors);
- for (unsigned int j = 0; j < factors.nfactors; j++)
- for (unsigned int k = 0; k < factors.e[j]; k++)
+ for (j = 0; j < factors.nfactors; j++)
+ for (k = 0; k < factors.e[j]; k++)
gmp_printf (" %Zd", factors.p[j]);
mp_factor_clear (&factors);
@@ -2476,6 +2501,8 @@ do_stdin (void)
int
main (int argc, char **argv)
{
+ int c;
+ bool ok;
initialize_main (&argc, &argv);
set_program_name (argv[0]);
setlocale (LC_ALL, "");
@@ -2486,7 +2513,6 @@ main (int argc, char **argv)
alg = ALG_POLLARD_RHO; /* Default to Pollard rho */
- int c;
while ((c = getopt_long (argc, argv, "", long_options, NULL)) != -1)
{
switch (c)
@@ -2517,13 +2543,13 @@ main (int argc, char **argv)
memset (q_freq, 0, sizeof (q_freq));
#endif
- bool ok;
if (argc <= optind)
ok = do_stdin ();
else
{
+ int i;
ok = true;
- for (int i = optind; i < argc; i++)
+ for (i = optind; i < argc; i++)
if (! print_factors (argv[i]))
ok = false;
}
@@ -2532,8 +2558,9 @@ main (int argc, char **argv)
if (alg == ALG_SQUFOF && q_freq[0] > 0)
{
double acc_f;
+ unsigned int i;
printf ("q freq. cum. freq.(total: %d)\n", q_freq[0]);
- for (unsigned int i = 1, acc_f = 0.0; i <= Q_FREQ_SIZE; i++)
+ for (i = 1, acc_f = 0.0; i <= Q_FREQ_SIZE; i++)
{
double f = (double) q_freq[i] / q_freq[0];
acc_f += f;
diff --git a/src/getlimits.c b/src/getlimits.c
index 597efd8..f30ebca 100644
--- a/src/getlimits.c
+++ b/src/getlimits.c
@@ -88,11 +88,12 @@ decimal_absval_add_one (char *buf)
bool negative = (buf[1] == '-');
char *absnum = buf + 1 + negative;
char *p = absnum + strlen (absnum);
+ char *result;
absnum[-1] = '0';
while (*--p == '9')
*p = '0';
++*p;
- char *result = MIN (absnum, p);
+ result = MIN (absnum, p);
if (negative)
*--result = '-';
return result;
diff --git a/src/group-list.c b/src/group-list.c
index 823384f..a51cea0 100644
--- a/src/group-list.c
+++ b/src/group-list.c
@@ -105,6 +105,7 @@ print_group (gid_t gid, bool use_name)
{
struct group *grp = NULL;
bool ok = true;
+ char *s;
if (use_name)
{
@@ -117,7 +118,7 @@ print_group (gid_t gid, bool use_name)
}
}
- char *s = grp ? grp->gr_name : gidtostr (gid);
+ s = grp ? grp->gr_name : gidtostr (gid);
fputs (s, stdout);
return ok;
}
diff --git a/src/head.c b/src/head.c
index 65bd52a..aff7285 100644
--- a/src/head.c
+++ b/src/head.c
@@ -443,6 +443,7 @@ elide_tail_bytes_file (const char *filename, int fd, uintmax_t n_elide,
return elide_tail_bytes_pipe (filename, fd, n_elide);
else
{
+ enum Copy_fd_status err;
/* Be careful here. The current position may actually be
beyond the end of the file. */
off_t diff = size - current_pos;
@@ -451,7 +452,7 @@ elide_tail_bytes_file (const char *filename, int fd, uintmax_t n_elide,
if (bytes_remaining <= n_elide)
return true;
- enum Copy_fd_status err = copy_fd (fd, bytes_remaining - n_elide);
+ err = copy_fd (fd, bytes_remaining - n_elide);
if (err == COPY_FD_OK)
return true;
@@ -610,6 +611,9 @@ elide_tail_lines_seekable (const char *pretty_filename, int fd,
uintmax_t n_lines,
off_t start_pos, off_t size)
{
+ /* n_lines == 0 case needs special treatment. */
+ const bool all_lines = !n_lines;
+
char buffer[BUFSIZ];
size_t bytes_read;
off_t pos = size;
@@ -631,9 +635,6 @@ elide_tail_lines_seekable (const char *pretty_filename, int fd,
return false;
}
- /* n_lines == 0 case needs special treatment. */
- const bool all_lines = !n_lines;
-
/* Count the incomplete line on files that don't end with a newline. */
if (n_lines && bytes_read && buffer[bytes_read - 1] != '\n')
--n_lines;
diff --git a/src/id.c b/src/id.c
index ccd1e87..ae20a9c 100644
--- a/src/id.c
+++ b/src/id.c
@@ -117,6 +117,7 @@ main (int argc, char **argv)
bool smack_enabled = is_smack_enabled ();
bool opt_zero = false;
char *pw_name = NULL;
+ size_t n_ids;
/* If true, output the list of all group IDs. -G */
bool just_group_list = false;
@@ -126,6 +127,7 @@ main (int argc, char **argv)
bool use_real = false;
/* If true, output only the user ID(s). -u */
bool just_user = false;
+ bool default_format;
initialize_main (&argc, &argv);
set_program_name (argv[0]);
@@ -183,7 +185,7 @@ main (int argc, char **argv)
}
}
- size_t n_ids = argc - optind;
+ n_ids = argc - optind;
if (1 < n_ids)
{
error (0, 0, _("extra operand %s"), quote (argv[optind + 1]));
@@ -197,7 +199,7 @@ main (int argc, char **argv)
if (just_user + just_group + just_group_list + just_context > 1)
error (EXIT_FAILURE, 0, _("cannot print \"only\" of more than one choice"));
- bool default_format = (just_user + just_group + just_group_list
+ default_format = (just_user + just_group + just_group_list
+ just_context == 0);
if (default_format && (use_real || use_name))
@@ -345,6 +347,7 @@ static void
print_user (uid_t uid)
{
struct passwd *pwd = NULL;
+ char *s;
if (use_name)
{
@@ -357,7 +360,7 @@ print_user (uid_t uid)
}
}
- char *s = pwd ? pwd->pw_name : uidtostr (uid);
+ s = pwd ? pwd->pw_name : uidtostr (uid);
fputs (s, stdout);
}
@@ -396,6 +399,7 @@ print_full_info (const char *username)
}
{
+ int n_groups;
gid_t *groups;
int i;
@@ -405,7 +409,7 @@ print_full_info (const char *username)
else
primary_group = egid;
- int n_groups = xgetgroups (username, primary_group, &groups);
+ n_groups = xgetgroups (username, primary_group, &groups);
if (n_groups < 0)
{
if (username)
diff --git a/src/install.c b/src/install.c
index c342422..c8f9917 100644
--- a/src/install.c
+++ b/src/install.c
@@ -197,8 +197,9 @@ need_copy (const char *src_name, const char *dest_name,
if (owner_id == (uid_t) -1)
{
+ uid_t ruid;
errno = 0;
- uid_t ruid = getuid ();
+ ruid = getuid ();
if ((ruid == (uid_t) -1 && errno) || dest_sb.st_uid != ruid)
return true;
}
@@ -207,8 +208,9 @@ need_copy (const char *src_name, const char *dest_name,
if (group_id == (uid_t) -1)
{
+ gid_t rgid;
errno = 0;
- gid_t rgid = getgid ();
+ rgid = getgid ();
if ((rgid == (uid_t) -1 && errno) || dest_sb.st_gid != rgid)
return true;
}
diff --git a/src/join.c b/src/join.c
index 5c26e78..d3afd4c 100644
--- a/src/join.c
+++ b/src/join.c
@@ -655,6 +655,8 @@ join (FILE *fp1, FILE *fp2)
struct seq seq1, seq2;
int diff;
bool eof1, eof2;
+ struct line *line = NULL;
+ bool checktail = false;
fadvise (fp1, FADVISE_SEQUENTIAL);
fadvise (fp2, FADVISE_SEQUENTIAL);
@@ -763,9 +765,7 @@ join (FILE *fp1, FILE *fp2)
tail ends of both inputs to verify that they are in order. We
skip the rest of the tail once we have issued a warning for that
file, unless we actually need to print the unpairable lines. */
- struct line *line = NULL;
- bool checktail = false;
-
+
if (check_input_order != CHECK_ORDER_DISABLED
&& !(issued_disorder_warning[0] && issued_disorder_warning[1]))
checktail = true;
@@ -838,9 +838,10 @@ string_to_join_field (char const *str)
{
size_t result;
unsigned long int val;
+ strtol_error s_err;
verify (SIZE_MAX <= ULONG_MAX);
- strtol_error s_err = xstrtoul (str, NULL, 10, &val, "");
+ s_err = xstrtoul (str, NULL, 10, &val, "");
if (s_err == LONGINT_OVERFLOW || (s_err == LONGINT_OK && SIZE_MAX < val))
val = SIZE_MAX;
else if (s_err != LONGINT_OK || val == 0)
diff --git a/src/ls.c b/src/ls.c
index cd5996e..2b9ada8 100644
--- a/src/ls.c
+++ b/src/ls.c
@@ -1049,13 +1049,14 @@ static size_t
abmon_init (void)
{
#ifdef HAVE_NL_LANGINFO
- required_mon_width = MAX_MON_WIDTH;
size_t curr_max_width;
+ required_mon_width = MAX_MON_WIDTH;
do
{
+ int i;
curr_max_width = required_mon_width;
required_mon_width = 0;
- for (int i = 0; i < 12; i++)
+ for (i = 0; i < 12; i++)
{
size_t width = curr_max_width;
@@ -2054,6 +2055,7 @@ decode_switches (int argc, char **argv)
sizeof (*time_style_types));
if (res < 0)
{
+ char const *const *p;
/* This whole block used to be a simple use of XARGMATCH.
but that didn't print the "posix-"-prefixed variants or
the "+"-prefixed format string option upon failure. */
@@ -2065,7 +2067,7 @@ decode_switches (int argc, char **argv)
only because all four existing time_style_types values
are distinct. */
fputs (_("Valid arguments are:\n"), stderr);
- char const *const *p = time_style_args;
+ p = time_style_args;
while (*p)
fprintf (stderr, " - [posix-]%s\n", *p++);
fputs (_(" - +FORMAT (e.g., +%H:%M) for a 'date'-style"
@@ -2334,10 +2336,10 @@ static bool
known_term_type (void)
{
char const *term = getenv ("TERM");
+ char const *line = G_line;
if (! term || ! *term)
return false;
- char const *line = G_line;
while (line - G_line < sizeof (G_line))
{
if (STRNCMP_LIT (line, "TERM ") == 0)
@@ -2359,6 +2361,7 @@ parse_ls_color (void)
int ind_no; /* Indicator number */
char label[3]; /* Indicator label */
struct color_ext_type *ext; /* Extension we are working on */
+ enum parse_state state;
if ((p = getenv ("LS_COLORS")) == NULL || *p == '\0')
{
@@ -2381,7 +2384,7 @@ parse_ls_color (void)
advance. */
buf = color_buf = xstrdup (p);
- enum parse_state state = PS_START;
+ state = PS_START;
while (true)
{
switch (state)
@@ -2846,13 +2849,14 @@ getfilecon_cache (char const *file, struct fileinfo *f, bool deref)
/* st_dev of the most recently processed device for which we've
found that [l]getfilecon fails indicating lack of support. */
static dev_t unsupported_device;
+ int r;
if (f->stat.st_dev == unsupported_device)
{
errno = ENOTSUP;
return -1;
}
- int r = 0;
+ r = 0;
#ifdef HAVE_SMACK
if (is_smack_enabled ())
r = smack_new_label_from_path (file, "security.SMACK64", deref,
@@ -2876,6 +2880,7 @@ file_has_acl_cache (char const *file, struct fileinfo *f)
/* st_dev of the most recently processed device for which we've
found that file_has_acl fails indicating lack of support. */
static dev_t unsupported_device;
+ int n;
if (f->stat.st_dev == unsupported_device)
{
@@ -2886,7 +2891,7 @@ file_has_acl_cache (char const *file, struct fileinfo *f)
/* Zero errno so that we can distinguish between two 0-returning cases:
"has-ACL-support, but only a default ACL" and "no ACL support". */
errno = 0;
- int n = file_has_acl (file, &f->stat);
+ n = file_has_acl (file, &f->stat);
if (n <= 0 && errno_unsupported (errno))
unsupported_device = f->stat.st_dev;
return n;
@@ -2901,6 +2906,7 @@ has_capability_cache (char const *file, struct fileinfo *f)
/* st_dev of the most recently processed device for which we've
found that has_capability fails indicating lack of support. */
static dev_t unsupported_device;
+ bool b;
if (f->stat.st_dev == unsupported_device)
{
@@ -2908,7 +2914,7 @@ has_capability_cache (char const *file, struct fileinfo *f)
return 0;
}
- bool b = has_capability (file);
+ b = has_capability (file);
if ( !b && errno_unsupported (errno))
unsupported_device = f->stat.st_dev;
return b;
@@ -3098,9 +3104,10 @@ gobble_file (char const *name, enum filetype type, ino_t inode,
&& (format == long_format || check_symlink_color))
{
struct stat linkstats;
+ char *linkname;
get_link_name (absolute_name, f, command_line_arg);
- char *linkname = make_link_name (absolute_name, f->linkname);
+ linkname = make_link_name (absolute_name, f->linkname);
/* Avoid following symbolic links when possible, ie, when
they won't be traced and when no indicator is needed. */
@@ -3254,6 +3261,8 @@ get_link_name (char const *filename, struct fileinfo *f, bool command_line_arg)
static char *
make_link_name (char const *name, char const *linkname)
{
+ char *p;
+ size_t prefix_len;
if (!linkname)
return NULL;
@@ -3262,11 +3271,11 @@ make_link_name (char const *name, char const *linkname)
/* The link is to a relative name. Prepend any leading directory
in 'name' to the link name. */
- size_t prefix_len = dir_len (name);
+ prefix_len = dir_len (name);
if (prefix_len == 0)
return xstrdup (linkname);
- char *p = xmalloc (prefix_len + 1 + strlen (linkname) + 1);
+ p = xmalloc (prefix_len + 1 + strlen (linkname) + 1);
/* PREFIX_LEN usually specifies a string not ending in slash.
In that case, extend it by one, since the next byte *is* a slash.
@@ -3668,6 +3677,7 @@ align_nstrftime (char *buf, size_t size, char const *fmt, struct tm const *tm,
the replacement is not done. A malloc here slows ls down by 2% */
char rpl_fmt[sizeof (abmon[0]) + 100];
const char *pb;
+ size_t ret;
if (required_mon_width && (pb = strstr (fmt, "%b")))
{
if (strlen (fmt) < (sizeof (rpl_fmt) - sizeof (abmon[0]) + 2))
@@ -3680,7 +3690,7 @@ align_nstrftime (char *buf, size_t size, char const *fmt, struct tm const *tm,
strcpy (pfmt, pb + 2);
}
}
- size_t ret = nstrftime (buf, size, nfmt, tm, __utc, __ns);
+ ret = nstrftime (buf, size, nfmt, tm, __utc, __ns);
return ret;
}
@@ -3831,6 +3841,7 @@ print_long_format (const struct fileinfo *f)
char *p;
struct timespec when_timespec;
struct tm *when_local;
+ size_t w;
/* Compute the mode string, except remove the trailing space if no
file in this directory has an ACL or security context. */
@@ -4018,7 +4029,7 @@ print_long_format (const struct fileinfo *f)
}
DIRED_FPUTS (buf, stdout, p - buf);
- size_t w = print_name_with_quoting (f, false, &dired_obstack, p - buf);
+ w = print_name_with_quoting (f, false, &dired_obstack, p - buf);
if (f->filetype == symbolic_link)
{
@@ -4206,6 +4217,7 @@ print_name_with_quoting (const struct fileinfo *f,
struct obstack *stack,
size_t start_col)
{
+ size_t width;
const char* name = symlink_target ? f->linkname : f->name;
bool used_color_this_time
@@ -4216,7 +4228,7 @@ print_name_with_quoting (const struct fileinfo *f,
if (stack)
PUSH_CURRENT_DIRED_POS (stack);
- size_t width = quote_name (stdout, name, filename_quoting_options, NULL);
+ width = quote_name (stdout, name, filename_quoting_options, NULL);
dired_pos += width;
if (stack)
@@ -4253,6 +4265,7 @@ prep_non_filename_text (void)
static size_t
print_file_name_and_frills (const struct fileinfo *f, size_t start_col)
{
+ size_t width;
char buf[MAX (LONGEST_HUMAN_READABLE + 1, INT_BUFSIZE_BOUND (uintmax_t))];
set_normal_color ();
@@ -4270,7 +4283,7 @@ print_file_name_and_frills (const struct fileinfo *f, size_t start_col)
if (print_scontext)
printf ("%*s ", format == with_commas ? 0 : scontext_width, f->scontext);
- size_t width = print_name_with_quoting (f, false, NULL, start_col);
+ width = print_name_with_quoting (f, false, NULL, start_col);
if (indicator_style != none)
width += print_type_indicator (f->stat_ok, f->stat.st_mode, f->filetype);
diff --git a/src/md5sum.c b/src/md5sum.c
index cc6dd49..679ed13 100644
--- a/src/md5sum.c
+++ b/src/md5sum.c
@@ -230,8 +230,9 @@ static char *
filename_unescape (char *s, size_t s_len)
{
char *dst = s;
+ size_t i;
- for (size_t i = 0; i < s_len; i++)
+ for (i = 0; i < s_len; i++)
{
switch (s[i])
{
@@ -835,6 +836,7 @@ main (int argc, char **argv)
containing '\\' characters, we decided to not simplify the
output in this case. */
bool needs_escape = strchr (file, '\\') || strchr (file, '\n');
+ size_t i;
if (prefix_tag)
{
@@ -847,7 +849,6 @@ main (int argc, char **argv)
fputs (") = ", stdout);
}
- size_t i;
/* Output a leading backslash if the file name contains
a newline or backslash. */
diff --git a/src/mkdir.c b/src/mkdir.c
index eb9693c..16cde70 100644
--- a/src/mkdir.c
+++ b/src/mkdir.c
@@ -121,17 +121,19 @@ static int
make_ancestor (char const *dir, char const *component, void *options)
{
struct mkdir_options const *o = options;
-
+ mode_t user_wx = S_IWUSR | S_IXUSR;
+ bool self_denying_umask;
+ int r;
+
if (o->set_security_context && defaultcon (dir, S_IFDIR) < 0
&& ! ignorable_ctx_err (errno))
error (0, errno, _("failed to set default creation context for %s"),
quote (dir));
- mode_t user_wx = S_IWUSR | S_IXUSR;
- bool self_denying_umask = (o->umask_value & user_wx) != 0;
+ self_denying_umask = (o->umask_value & user_wx) != 0;
if (self_denying_umask)
umask (o->umask_value & ~user_wx);
- int r = mkdir (component, S_IRWXUGO);
+ r = mkdir (component, S_IRWXUGO);
if (self_denying_umask)
{
int mkdir_errno = errno;
@@ -152,6 +154,7 @@ process_dir (char *dir, struct savewd *wd, void *options)
{
struct mkdir_options const *o = options;
bool set_defaultcon = false;
+ int ret;
/* If possible set context before DIR created. */
if (o->set_security_context)
@@ -173,7 +176,7 @@ process_dir (char *dir, struct savewd *wd, void *options)
quote (dir));
}
- int ret = (make_dir_parents (dir, wd, o->make_ancestor_function, options,
+ ret = (make_dir_parents (dir, wd, o->make_ancestor_function, options,
o->mode, announce_mkdir,
o->mode_bits, (uid_t) -1, (gid_t) -1, true)
? EXIT_SUCCESS
diff --git a/src/nproc.c b/src/nproc.c
index 9bfc8b3..8e178d2 100644
--- a/src/nproc.c
+++ b/src/nproc.c
@@ -76,6 +76,7 @@ int
main (int argc, char **argv)
{
unsigned long nproc, ignore = 0;
+ enum nproc_query mode = NPROC_CURRENT_OVERRIDABLE;
initialize_main (&argc, &argv);
set_program_name (argv[0]);
setlocale (LC_ALL, "");
@@ -84,8 +85,7 @@ main (int argc, char **argv)
atexit (close_stdout);
- enum nproc_query mode = NPROC_CURRENT_OVERRIDABLE;
-
+
while (1)
{
int c = getopt_long (argc, argv, "", longopts, NULL);
diff --git a/src/numfmt.c b/src/numfmt.c
index 206866a..5e60422 100644
--- a/src/numfmt.c
+++ b/src/numfmt.c
@@ -520,9 +520,11 @@ simple_strtod_float (const char *input_str,
char *ptr2;
long double val_frac = 0;
bool neg_frac;
+ size_t exponent;
+ enum simple_strtod_error e2;
(*endptr) += decimal_point_length;
- enum simple_strtod_error e2 =
+ e2 =
simple_strtod_int (*endptr, &ptr2, &val_frac, &neg_frac);
if (e2 != SSE_OK && e2 != SSE_OK_PRECISION_LOSS)
return e2;
@@ -532,7 +534,7 @@ simple_strtod_float (const char *input_str,
return SSE_INVALID_NUMBER;
/* number of digits in the fractions. */
- size_t exponent = ptr2 - *endptr;
+ exponent = ptr2 - *endptr;
val_frac = ((long double) val_frac) / powerld (10, exponent);
@@ -579,12 +581,14 @@ simple_strtod_human (const char *input_str,
int power = 0;
/* 'scale_auto' is checked below. */
int scale_base = default_scale_base (allowed_scaling);
+ enum simple_strtod_error e;
+ long double multiplier;
devmsg ("simple_strtod_human:\n input string: %s\n "
"locale decimal-point: %s\n",
quote_n (0, input_str), quote_n (1, decimal_point));
- enum simple_strtod_error e =
+ e =
simple_strtod_float (input_str, endptr, value, precision);
if (e != SSE_OK && e != SSE_OK_PRECISION_LOSS)
return e;
@@ -630,7 +634,7 @@ simple_strtod_human (const char *input_str,
return SSE_MISSING_I_SUFFIX;
}
- long double multiplier = powerld (scale_base, power);
+ multiplier = powerld (scale_base, power);
devmsg (" suffix power=%d^%d = %Lf\n", scale_base, power, multiplier);
@@ -687,13 +691,18 @@ double_to_human (long double val, int precision,
char *buf, size_t buf_size,
enum scale_type scale, int group, enum round_type round)
{
+ double scale_base;
+ int ten_or_less = 0;
+ int show_decimal_point;
+ unsigned int power = 0;
+ char *pfmt;
int num_size;
char fmt[64];
verify (sizeof (fmt) > (INT_BUFSIZE_BOUND (zero_padding_width)
+ INT_BUFSIZE_BOUND (precision)
+ 10 /* for %.Lf etc. */));
- char *pfmt = fmt;
+ pfmt = fmt;
*pfmt++ = '%';
if (group)
@@ -724,15 +733,14 @@ double_to_human (long double val, int precision,
}
/* Scaling requested by user. */
- double scale_base = default_scale_base (scale);
+ scale_base = default_scale_base (scale);
/* Normalize val to scale. */
- unsigned int power = 0;
+ power = 0;
val = expld (val, scale_base, &power);
devmsg (" scaled value to %Lf * %0.f ^ %d\n", val, scale_base, power);
/* Perform rounding. */
- int ten_or_less = 0;
if (absld (val) < 10)
{
/* for values less than 10, we allow one decimal-point digit,
@@ -754,7 +762,7 @@ double_to_human (long double val, int precision,
/* should "7.0" be printed as "7" ?
if removing the ".0" is preferred, enable the fourth condition. */
- int show_decimal_point = (val != 0) && (absld (val) < 10) && (power > 0);
+ show_decimal_point = (val != 0) && (absld (val) < 10) && (power > 0);
/* && (absld (val) > simple_round_floor (val))) */
devmsg (" after rounding, value=%Lf * %0.f ^ %d\n", val, scale_base, power);
@@ -1155,6 +1163,10 @@ print_padded_number (void)
static int
process_suffixed_number (char *text, long double *result, size_t *precision)
{
+ char *p;
+ long double val = 0;
+ enum simple_strtod_error e;
+ const unsigned int skip_count;
if (suffix && strlen (text) > strlen (suffix))
{
char *possible_suffix = text + strlen (text) - strlen (suffix);
@@ -1170,10 +1182,10 @@ process_suffixed_number (char *text, long double *result, size_t *precision)
}
/* Skip white space - always. */
- char *p = text;
+ p = text;
while (*p && isblank (to_uchar (*p)))
++p;
- const unsigned int skip_count = text - p;
+ skip_count = text - p;
/* setup auto-padding. */
if (auto_padding)
@@ -1190,8 +1202,7 @@ process_suffixed_number (char *text, long double *result, size_t *precision)
devmsg ("setting Auto-Padding to %ld characters\n", padding_width);
}
- long double val = 0;
- enum simple_strtod_error e = parse_human_number (p, &val, precision);
+ e = parse_human_number (p, &val, precision);
if (e == SSE_OK_PRECISION_LOSS && debug)
error (0, 0, _("large input value %s: possible precision loss"),
quote (p));
@@ -1348,6 +1359,7 @@ int
main (int argc, char **argv)
{
int valid_numbers = 1;
+ int exit_status;
initialize_main (&argc, &argv);
set_program_name (argv[0]);
@@ -1534,7 +1546,7 @@ main (int argc, char **argv)
if (debug && !valid_numbers)
error (0, 0, _("failed to convert some of the input numbers"));
- int exit_status = EXIT_SUCCESS;
+ exit_status = EXIT_SUCCESS;
if (!valid_numbers && _invalid != inval_warn && _invalid != inval_ignore)
exit_status = EXIT_CONVERSION_WARNINGS;
diff --git a/src/od.c b/src/od.c
index 7bc0e2a..264c508 100644
--- a/src/od.c
+++ b/src/od.c
@@ -448,7 +448,7 @@ N (size_t fields, size_t blank, void const *block, \
else \
x = *p; \
p++; \
- ACTION; \
+ { ACTION; } \
pad_remaining = next_pad; \
} \
}
diff --git a/src/realpath.c b/src/realpath.c
index 0c55327..e75dabd 100644
--- a/src/realpath.c
+++ b/src/realpath.c
@@ -101,8 +101,9 @@ realpath_canon (const char *fname, int can_mode)
char *can_fname = canonicalize_filename_mode (fname, can_mode);
if (logical && can_fname) /* canonicalize again to resolve symlinks. */
{
+ char *can_fname2;
can_mode &= ~CAN_NOLINKS;
- char *can_fname2 = canonicalize_filename_mode (can_fname, can_mode);
+ can_fname2 = canonicalize_filename_mode (can_fname, can_mode);
free (can_fname);
return can_fname2;
}
@@ -176,6 +177,7 @@ main (int argc, char **argv)
int can_mode = CAN_ALL_BUT_LAST;
const char *relative_to = NULL;
const char *relative_base = NULL;
+ bool need_dir;
initialize_main (&argc, &argv);
set_program_name (argv[0]);
@@ -240,7 +242,7 @@ main (int argc, char **argv)
if (relative_base && !relative_to)
relative_to = relative_base;
- bool need_dir = (can_mode & CAN_MODE_MASK) == CAN_EXISTING;
+ need_dir = (can_mode & CAN_MODE_MASK) == CAN_EXISTING;
if (relative_to)
{
can_relative_to = realpath_canon (relative_to, can_mode);
diff --git a/src/relpath.c b/src/relpath.c
index 29472e5..f4b0ea2 100644
--- a/src/relpath.c
+++ b/src/relpath.c
@@ -88,14 +88,16 @@ bool
relpath (const char *can_fname, const char *can_reldir, char *buf, size_t len)
{
bool buf_err = false;
+ const char *relto_suffix;
+ const char *fname_suffix;
/* Skip the prefix common to --relative-to and path. */
int common_index = path_common_prefix (can_reldir, can_fname);
if (!common_index)
return false;
- const char *relto_suffix = can_reldir + common_index;
- const char *fname_suffix = can_fname + common_index;
+ relto_suffix = can_reldir + common_index;
+ fname_suffix = can_fname + common_index;
/* Skip over extraneous '/'. */
if (*relto_suffix == '/')
diff --git a/src/remove.c b/src/remove.c
index 4cc4a08..d02fa5f 100644
--- a/src/remove.c
+++ b/src/remove.c
@@ -180,17 +180,20 @@ prompt (FTS const *fts, FTSENT const *ent, bool is_dir,
int fd_cwd = fts->fts_cwd_fd;
char const *full_name = ent->fts_path;
char const *filename = ent->fts_accpath;
+ struct stat st;
+ struct stat *sbuf;
+ int dirent_type;
+ int write_protected = 0;
+ bool is_empty = false;
+ int wp_errno = 0;
if (is_empty_p)
*is_empty_p = T_UNKNOWN;
- struct stat st;
- struct stat *sbuf = &st;
+ sbuf = &st;
cache_stat_init (sbuf);
- int dirent_type = is_dir ? DT_DIR : DT_UNKNOWN;
- int write_protected = 0;
-
- bool is_empty = false;
+ dirent_type = is_dir ? DT_DIR : DT_UNKNOWN;
+
if (is_empty_p)
{
is_empty = is_empty_dir (fd_cwd, filename);
@@ -206,7 +209,6 @@ prompt (FTS const *fts, FTSENT const *ent, bool is_dir,
if (x->interactive == RMI_NEVER)
return RM_OK;
- int wp_errno = 0;
if (!x->ignore_missing_files
&& ((x->interactive == RMI_ALWAYS) || x->stdin_tty)
&& dirent_type != DT_LNK)
@@ -217,6 +219,7 @@ prompt (FTS const *fts, FTSENT const *ent, bool is_dir,
if (write_protected || x->interactive == RMI_ALWAYS)
{
+ char const *quoted_name;
if (0 <= write_protected && dirent_type == DT_UNKNOWN)
{
if (cache_fstatat (fd_cwd, filename, sbuf, AT_SYMLINK_NOFOLLOW) == 0)
@@ -256,7 +259,7 @@ prompt (FTS const *fts, FTSENT const *ent, bool is_dir,
break;
}
- char const *quoted_name = quote (full_name);
+ quoted_name = quote (full_name);
if (write_protected < 0)
{
@@ -493,6 +496,8 @@ rm_fts (FTS *fts, FTSENT *ent, struct rm_options const *x)
case FTS_NSOK: /* e.g., dangling symlink */
case FTS_DEFAULT: /* none of the above */
{
+ bool is_dir;
+ enum RM_status s;
/* With --one-file-system, do not attempt to remove a mount point.
fts' FTS_XDEV ensures that we don't process any entries under
the mount point. */
@@ -507,8 +512,8 @@ rm_fts (FTS *fts, FTSENT *ent, struct rm_options const *x)
return RM_ERROR;
}
- bool is_dir = ent->fts_info == FTS_DP || ent->fts_info == FTS_DNR;
- enum RM_status s = prompt (fts, ent, is_dir, x, PA_REMOVE_DIR, NULL);
+ is_dir = ent->fts_info == FTS_DP || ent->fts_info == FTS_DNR;
+ s = prompt (fts, ent, is_dir, x, PA_REMOVE_DIR, NULL);
if (s != RM_OK)
return s;
return excise (fts, ent, x, is_dir);
@@ -549,15 +554,17 @@ rm (char *const *file, struct rm_options const *x)
int bit_flags = (FTS_CWDFD
| FTS_NOSTAT
| FTS_PHYSICAL);
+ FTS *fts;
if (x->one_file_system)
bit_flags |= FTS_XDEV;
- FTS *fts = xfts_open (file, bit_flags, NULL);
+ fts = xfts_open (file, bit_flags, NULL);
while (1)
{
FTSENT *ent;
+ enum RM_status s;
ent = fts_read (fts);
if (ent == NULL)
@@ -570,7 +577,7 @@ rm (char *const *file, struct rm_options const *x)
break;
}
- enum RM_status s = rm_fts (fts, ent, x);
+ s = rm_fts (fts, ent, x);
assert (VALID_STATUS (s));
UPDATE_STATUS (rm_status, s);
diff --git a/src/rm.c b/src/rm.c
index 5baea15..cd4021f 100644
--- a/src/rm.c
+++ b/src/rm.c
@@ -209,6 +209,9 @@ main (int argc, char **argv)
struct rm_options x;
bool prompt_once = false;
int c;
+ size_t n_files;
+ char **file;
+ enum RM_status status;
initialize_main (&argc, &argv);
set_program_name (argv[0]);
@@ -332,8 +335,8 @@ main (int argc, char **argv)
quote ("/"));
}
- size_t n_files = argc - optind;
- char **file = argv + optind;
+ n_files = argc - optind;
+ file = argv + optind;
if (prompt_once && (x.recursive || 3 < n_files))
{
@@ -350,7 +353,7 @@ main (int argc, char **argv)
exit (EXIT_SUCCESS);
}
- enum RM_status status = rm (file, &x);
+ status = rm (file, &x);
assert (VALID_STATUS (status));
exit (status == RM_ERROR ? EXIT_FAILURE : EXIT_SUCCESS);
}
diff --git a/src/seq.c b/src/seq.c
index 1124358..ac2edb9 100644
--- a/src/seq.c
+++ b/src/seq.c
@@ -153,6 +153,7 @@ scan_arg (const char *arg)
if (! arg[strcspn (arg, "xX")] && isfinite (ret.value))
{
char const *decimal_point = strchr (arg, '.');
+ char const *e;
if (! decimal_point)
ret.precision = 0;
else
@@ -165,7 +166,7 @@ scan_arg (const char *arg)
: (decimal_point == arg /* .# -> 0.# */
|| ! ISDIGIT (decimal_point[-1]))); /* -.# -> 0.# */
}
- char const *e = strchr (arg, 'e');
+ e = strchr (arg, 'e');
if (! e)
e = strchr (arg, 'E');
if (e)
@@ -330,6 +331,7 @@ get_default_format (operand first, operand step, operand last)
{
if (equal_width)
{
+ size_t width;
/* increase first_width by any increased precision in step */
size_t first_width = first.width + (prec - first.precision);
/* adjust last_width to use precision from first/step */
@@ -340,7 +342,7 @@ get_default_format (operand first, operand step, operand last)
last_width++; /* include space for '.' */
if (first.precision == 0 && prec)
first_width++; /* include space for '.' */
- size_t width = MAX (first_width, last_width);
+ width = MAX (first_width, last_width);
if (width <= INT_MAX)
{
int w = width;
@@ -411,20 +413,23 @@ trim_leading_zeros (char const *s)
static bool
seq_fast (char const *a, char const *b)
{
+ size_t p_len, q_len, n;
+ char *p0, *p, *q0, *q;
+ bool ok;
/* Skip past any leading 0's. Without this, our naive cmp
function would declare 000 to be larger than 99. */
a = trim_leading_zeros (a);
b = trim_leading_zeros (b);
- size_t p_len = strlen (a);
- size_t q_len = strlen (b);
- size_t n = MAX (p_len, q_len);
- char *p0 = xmalloc (n + 1);
- char *p = memcpy (p0 + n - p_len, a, p_len + 1);
- char *q0 = xmalloc (n + 1);
- char *q = memcpy (q0 + n - q_len, b, q_len + 1);
+ p_len = strlen (a);
+ q_len = strlen (b);
+ n = MAX (p_len, q_len);
+ p0 = xmalloc (n + 1);
+ p = memcpy (p0 + n - p_len, a, p_len + 1);
+ q0 = xmalloc (n + 1);
+ q = memcpy (q0 + n - q_len, b, q_len + 1);
- bool ok = cmp (p, p_len, q, q_len) <= 0;
+ ok = cmp (p, p_len, q, q_len) <= 0;
if (ok)
{
/* Buffer at least this many numbers per fwrite call.
@@ -485,6 +490,7 @@ main (int argc, char **argv)
/* The printf(3) format used for output. */
char const *format_str = NULL;
+ unsigned int n_args;
initialize_main (&argc, &argv);
set_program_name (argv[0]);
@@ -536,7 +542,7 @@ main (int argc, char **argv)
}
}
- unsigned int n_args = argc - optind;
+ n_args = argc - optind;
if (n_args < 1)
{
error (0, 0, _("missing operand"));
diff --git a/src/shred.c b/src/shred.c
index bd88e38..04be383 100644
--- a/src/shred.c
+++ b/src/shred.c
@@ -254,11 +254,12 @@ to be recovered later.\n\
static bool
periodic_pattern (int type)
{
+ unsigned char r[3];
+ unsigned int bits;
if (type <= 0)
return false;
- unsigned char r[3];
- unsigned int bits = type & 0xfff;
+ bits = type & 0xfff;
bits |= bits << 12;
r[0] = (bits >> 4) & 255;
@@ -386,6 +387,7 @@ direct_mode (int fd, bool enable)
static bool
dorewind (int fd, struct stat const *st)
{
+ off_t offset;
if (S_ISCHR (st->st_mode))
{
#ifdef __linux__
@@ -399,7 +401,7 @@ dorewind (int fd, struct stat const *st)
return true;
#endif
}
- off_t offset = lseek (fd, 0, SEEK_SET);
+ offset = lseek (fd, 0, SEEK_SET);
if (0 < offset)
errno = EINVAL;
return offset == 0;
@@ -427,32 +429,37 @@ dopass (int fd, struct stat const *st, char const *qname, off_t *sizep,
size_t lim; /* Amount of data to try writing */
size_t soff; /* Offset into buffer for next write */
ssize_t ssize; /* Return value from write */
+ size_t output_size;
+ void *fill_pattern_mem;
+ unsigned char *pbuf;
+
+ char pass_string[PASS_NAME_SIZE]; /* Name of current pass */
+ bool write_error = false;
+ bool other_error = false;
+
+ /* Printable previous offset into the file */
+ char previous_offset_buf[LONGEST_HUMAN_READABLE + 1];
+ char const *previous_human_offset IF_LINT ( = 0);
+
+ bool try_without_directio;
/* Fill pattern buffer. Aligning it to a page so we can do direct I/O. */
size_t page_size = getpagesize ();
#define PERIODIC_OUTPUT_SIZE (60 * 1024)
#define NONPERIODIC_OUTPUT_SIZE (64 * 1024)
verify (PERIODIC_OUTPUT_SIZE % 3 == 0);
- size_t output_size = periodic_pattern (type)
+ output_size = periodic_pattern (type)
? PERIODIC_OUTPUT_SIZE : NONPERIODIC_OUTPUT_SIZE;
#define PAGE_ALIGN_SLOP (page_size - 1) /* So directio works */
#define FILLPATTERN_SIZE (((output_size + 2) / 3) * 3) /* Multiple of 3 */
#define PATTERNBUF_SIZE (PAGE_ALIGN_SLOP + FILLPATTERN_SIZE)
- void *fill_pattern_mem = xmalloc (PATTERNBUF_SIZE);
- unsigned char *pbuf = ptr_align (fill_pattern_mem, page_size);
-
- char pass_string[PASS_NAME_SIZE]; /* Name of current pass */
- bool write_error = false;
- bool other_error = false;
-
- /* Printable previous offset into the file */
- char previous_offset_buf[LONGEST_HUMAN_READABLE + 1];
- char const *previous_human_offset IF_LINT ( = 0);
+ fill_pattern_mem = xmalloc (PATTERNBUF_SIZE);
+ pbuf = ptr_align (fill_pattern_mem, page_size);
/* As a performance tweak, avoid direct I/O for small sizes,
as it's just a performance rather then security consideration,
and direct I/O can often be unsupported for small non aligned sizes. */
- bool try_without_directio = 0 < size && size < output_size;
+ try_without_directio = 0 < size && size < output_size;
if (! try_without_directio)
direct_mode (fd, true);
@@ -486,6 +493,7 @@ dopass (int fd, struct stat const *st, char const *qname, off_t *sizep,
offset = 0;
while (true)
{
+ bool done;
/* How much to write this time? */
lim = output_size;
if (0 <= size && size - offset < output_size)
@@ -565,7 +573,7 @@ dopass (int fd, struct stat const *st, char const *qname, off_t *sizep,
offset += soff;
- bool done = offset == size;
+ done = offset == size;
/* Time to print progress? */
if (n && ((done && *previous_human_offset)
diff --git a/src/shuf.c b/src/shuf.c
index 2505be6..c57ccb9 100644
--- a/src/shuf.c
+++ b/src/shuf.c
@@ -152,6 +152,7 @@ static off_t
input_size (void)
{
off_t file_size;
+ off_t input_offset;
struct stat stat_buf;
if (fstat (STDIN_FILENO, &stat_buf) != 0)
@@ -161,7 +162,7 @@ input_size (void)
else
return OFF_T_MAX;
- off_t input_offset = lseek (STDIN_FILENO, 0, SEEK_CUR);
+ input_offset = lseek (STDIN_FILENO, 0, SEEK_CUR);
if (input_offset < 0)
return OFF_T_MAX;
diff --git a/src/sort.c b/src/sort.c
index c249319..009f60b 100644
--- a/src/sort.c
+++ b/src/sort.c
@@ -764,9 +764,10 @@ static bool
delete_proc (pid_t pid)
{
struct tempnode test;
+ struct tempnode *node;
test.pid = pid;
- struct tempnode *node = hash_delete (proctab, &test);
+ node = hash_delete (proctab, &test);
if (! node)
return false;
node->state = REAPED;
@@ -1162,6 +1163,7 @@ open_temp (struct tempnode *temp)
{
int tempfd, pipefds[2];
FILE *fp = NULL;
+ pid_t child;
if (temp->state == UNREAPED)
wait_proc (temp->pid);
@@ -1170,7 +1172,7 @@ open_temp (struct tempnode *temp)
if (tempfd < 0)
return NULL;
- pid_t child = pipe_fork (pipefds, MAX_FORK_TRIES_DECOMPRESS);
+ child = pipe_fork (pipefds, MAX_FORK_TRIES_DECOMPRESS);
switch (child)
{
@@ -1446,6 +1448,7 @@ specify_nthreads (int oi, char c, char const *s)
static size_t
default_sort_size (void)
{
+ double avail, total, mem;
/* Let SIZE be MEM, but no more than the maximum object size,
total memory, or system resource limits. Don't bother to check
for values like RLIM_INFINITY since in practice they are not much
@@ -1472,9 +1475,9 @@ default_sort_size (void)
/* Let MEM be available memory or 1/8 of total memory, whichever
is greater. */
- double avail = physmem_available ();
- double total = physmem_total ();
- double mem = MAX (avail, total / 8);
+ avail = physmem_available ();
+ total = physmem_total ();
+ mem = MAX (avail, total / 8);
/* Leave a 1/4 margin for physical memory. */
if (total * 0.75 < size)
@@ -1931,12 +1934,13 @@ find_unit_order (char const *number)
static int
human_numcompare (char const *a, char const *b)
{
+ int diff;
while (blanks[to_uchar (*a)])
a++;
while (blanks[to_uchar (*b)])
b++;
- int diff = find_unit_order (a) - find_unit_order (b);
+ diff = find_unit_order (a) - find_unit_order (b);
return (diff ? diff : strnumcmp (a, b, decimal_point, thousands_sep));
}
@@ -1963,10 +1967,10 @@ static int
nan_compare (char const *sa, char const *sb)
{
long_double a;
+ long_double b;
memset (&a, 0, sizeof a);
a = strtold (sa, NULL);
- long_double b;
memset (&b, 0, sizeof b);
b = strtold (sb, NULL);
@@ -2068,9 +2072,9 @@ random_md5_state_init (char const *random_source)
static size_t
xstrxfrm (char *restrict dest, char const *restrict src, size_t destsize)
{
- errno = 0;
size_t translated_size = strxfrm (dest, src, destsize);
-
+ errno = 0;
+
if (errno)
{
error (0, errno, _("string transformation failed"));
@@ -2103,6 +2107,7 @@ compare_random (char *restrict texta, size_t lena,
void *allocated = NULL;
uint32_t dig[2][MD5_DIGEST_SIZE / sizeof (uint32_t)];
struct md5_ctx s[2];
+ int diff;
s[0] = s[1] = random_md5_state;
if (hard_LC_COLLATE)
@@ -2128,6 +2133,8 @@ compare_random (char *restrict texta, size_t lena,
twice on typical implementations. Don't worry about
size_t overflow, as the guess need not be correct. */
size_t guess_bufsize = 3 * (lena + lenb) + 2;
+ size_t sizea, sizeb;
+ bool a_fits;
if (bufsize < guess_bufsize)
{
bufsize = MAX (guess_bufsize, bufsize * 3 / 2);
@@ -2140,10 +2147,10 @@ compare_random (char *restrict texta, size_t lena,
}
}
- size_t sizea =
+ sizea =
(texta < lima ? xstrxfrm (buf, texta, bufsize) + 1 : 0);
- bool a_fits = sizea <= bufsize;
- size_t sizeb =
+ a_fits = sizea <= bufsize;
+ sizeb =
(textb < limb
? (xstrxfrm ((a_fits ? buf + sizea : NULL), textb,
(a_fits ? bufsize - sizea : 0))
@@ -2196,7 +2203,7 @@ compare_random (char *restrict texta, size_t lena,
/* Compute and compare the checksums. */
md5_process_bytes (texta, lena, &s[0]); md5_finish_ctx (&s[0], dig[0]);
md5_process_bytes (textb, lenb, &s[1]); md5_finish_ctx (&s[1], dig[1]);
- int diff = memcmp (dig[0], dig[1], sizeof dig[0]);
+ diff = memcmp (dig[0], dig[1], sizeof dig[0]);
/* Fall back on the tiebreaker if the checksums collide. */
if (! diff)
@@ -2267,6 +2274,7 @@ debug_key (struct line const *line, struct keyfield const *key)
char *text = line->text;
char *beg = text;
char *lim = text + line->length - 1;
+ size_t offset, width;
if (key)
{
@@ -2278,12 +2286,13 @@ debug_key (struct line const *line, struct keyfield const *key)
if (key->skipsblanks || key->month || key_numeric (key))
{
char saved = *lim;
+ char *tighter_lim;
*lim = '\0';
while (blanks[to_uchar (*beg)])
beg++;
- char *tighter_lim = beg;
+ tighter_lim = beg;
if (lim < beg)
tighter_lim = lim;
@@ -2319,8 +2328,8 @@ debug_key (struct line const *line, struct keyfield const *key)
}
}
- size_t offset = debug_width (text, beg);
- size_t width = debug_width (beg, lim);
+ offset = debug_width (text, beg);
+ width = debug_width (beg, lim);
mark_key (offset, width);
}
@@ -2394,6 +2403,7 @@ key_warnings (struct keyfield const *gkey, bool gkey_only)
for (key = keylist; key; key = key->next, keynum++)
{
+ bool implicit_skip, maybe_space_aligned, line_offset;
if (key->obsolete_used)
{
size_t sword = key->sword;
@@ -2428,10 +2438,10 @@ key_warnings (struct keyfield const *gkey, bool gkey_only)
error (0, 0, _("key %lu has zero width and will be ignored"), keynum);
/* Warn about significant leading blanks. */
- bool implicit_skip = key_numeric (key) || key->month;
- bool maybe_space_aligned = !hard_LC_COLLATE && default_key_compare (key)
+ implicit_skip = key_numeric (key) || key->month;
+ maybe_space_aligned = !hard_LC_COLLATE && default_key_compare (key)
&& !(key->schar || key->echar);
- bool line_offset = key->eword == 0 && key->echar != 0; /* -k1.x,1.y */
+ line_offset = key->eword == 0 && key->echar != 0; /* -k1.x,1.y */
if (!gkey_only && tab == TAB_DEFAULT && !line_offset
&& ((!key->skipsblanks && !(implicit_skip || maybe_space_aligned))
|| (!key->skipsblanks && key->schar)
@@ -2475,10 +2485,10 @@ key_warnings (struct keyfield const *gkey, bool gkey_only)
|| (ugkey.reverse && (stable || unique) && keylist))
{
bool ugkey_reverse = ugkey.reverse;
+ char opts[sizeof short_options];
if (!(stable || unique))
ugkey.reverse = false;
/* The following is too big, but guaranteed to be "big enough". */
- char opts[sizeof short_options];
key_to_opts (&ugkey, opts);
error (0, 0,
ngettext ("option '-%s' is ignored",
@@ -2509,6 +2519,7 @@ keycompare (struct line const *a, struct line const *b)
while (true)
{
+ size_t lena, lenb;
char const *translate = key->translate;
bool const *ignore = key->ignore;
@@ -2517,8 +2528,8 @@ keycompare (struct line const *a, struct line const *b)
limb = MAX (textb, limb);
/* Find the lengths. */
- size_t lena = lima - texta;
- size_t lenb = limb - textb;
+ lena = lima - texta;
+ lenb = limb - textb;
if (hard_LC_COLLATE || key_numeric (key)
|| key->month || key->random || key->version)
@@ -3187,6 +3198,8 @@ sequential_sort (struct line *restrict lines, size_t nlines,
size_t nhi = nlines - nlo;
struct line *lo = lines;
struct line *hi = lines - nlo;
+ struct line *dest;
+ struct line const *sorted_lo;
sequential_sort (hi, nhi, temp - (to_temp ? nlo : 0), to_temp);
if (1 < nlo)
@@ -3194,8 +3207,6 @@ sequential_sort (struct line *restrict lines, size_t nlines,
else if (!to_temp)
temp[-1] = lo[-1];
- struct line *dest;
- struct line const *sorted_lo;
if (to_temp)
{
dest = temp;
@@ -3829,6 +3840,8 @@ merge (struct sortfile *files, size_t ntemps, size_t nfiles,
while (true)
{
/* Merge directly into the output file if possible. */
+ FILE *tfp;
+ struct tempnode *temp;
FILE **fps;
size_t nopened = open_input_files (files, nfiles, &fps);
@@ -3851,8 +3864,6 @@ merge (struct sortfile *files, size_t ntemps, size_t nfiles,
file with our spare file descriptor. Retry if that failed
(e.g., some other process could open a file between the time
we closed and tried to create). */
- FILE *tfp;
- struct tempnode *temp;
do
{
nopened--;
@@ -3881,10 +3892,10 @@ sort (char *const *files, size_t nfiles, char const *output_file,
size_t nthreads)
{
struct buffer buf;
- IF_LINT (buf.buf = NULL);
size_t ntemps = 0;
bool output_file_created = false;
-
+ IF_LINT (buf.buf = NULL);
+
buf.alloc = 0;
while (nfiles)
@@ -3949,8 +3960,9 @@ sort (char *const *files, size_t nfiles, char const *output_file,
if (1 < buf.nlines)
{
struct merge_node_queue queue;
+ struct merge_node *merge_tree;
queue_init (&queue, nthreads);
- struct merge_node *merge_tree =
+ merge_tree =
merge_tree_init (nthreads, buf.nlines, line);
sortlines (line, nthreads, buf.nlines, merge_tree + 1,
@@ -4730,6 +4742,7 @@ main (int argc, char **argv)
}
else
{
+ size_t nthreads_max;
if (!nthreads)
{
unsigned long int np = num_processors (NPROC_CURRENT_OVERRIDABLE);
@@ -4737,7 +4750,7 @@ main (int argc, char **argv)
}
/* Avoid integer overflow later. */
- size_t nthreads_max = SIZE_MAX / (2 * sizeof (struct merge_node));
+ nthreads_max = SIZE_MAX / (2 * sizeof (struct merge_node));
nthreads = MIN (nthreads, nthreads_max);
sort (files, nfiles, outfile, nthreads);
diff --git a/src/split.c b/src/split.c
index dacacaa..9afa08a 100644
--- a/src/split.c
+++ b/src/split.c
@@ -308,14 +308,15 @@ new_name:
if (numeric_suffix_start)
{
- assert (! widen);
-
+ size_t *sufindex_end;
+
/* Update the output file name. */
size_t i = strlen (numeric_suffix_start);
+ assert (! widen);
memcpy (outfile_mid + suffix_length - i, numeric_suffix_start, i);
/* Update the suffix index. */
- size_t *sufindex_end = sufindex + suffix_length;
+ sufindex_end = sufindex + suffix_length;
while (i-- != 0)
*--sufindex_end = numeric_suffix_start[i] - '0';
}
@@ -361,13 +362,14 @@ create (const char *name)
{
if (!filter_command)
{
+ int fd;
+ struct stat out_stat_buf;
if (verbose)
fprintf (stdout, _("creating file %s\n"), quote (name));
- int fd = open (name, O_WRONLY | O_CREAT | O_BINARY, MODE_RW_UGO);
+ fd = open (name, O_WRONLY | O_CREAT | O_BINARY, MODE_RW_UGO);
if (fd < 0)
return fd;
- struct stat out_stat_buf;
if (fstat (fd, &out_stat_buf) != 0)
error (EXIT_FAILURE, errno, _("failed to stat %s"), quote (name));
if (SAME_INODE (in_stat_buf, out_stat_buf))
@@ -444,9 +446,9 @@ closeout (FILE *fp, int fd, pid_t pid, char const *name)
error (EXIT_FAILURE, errno, "%s", name);
if (fd >= 0)
{
+ int j;
if (fp == NULL && close (fd) < 0)
error (EXIT_FAILURE, errno, "%s", name);
- int j;
for (j = 0; j < n_open_pipes; ++j)
{
if (open_pipes[j] == fd)
@@ -632,11 +634,13 @@ line_bytes_split (uintmax_t n_bytes, char *buf, size_t bufsize)
do
{
+ size_t n_left;
+ char *sob;
n_read = safe_read (STDIN_FILENO, buf, bufsize);
if (n_read == SAFE_READ_ERROR)
error (EXIT_FAILURE, errno, "%s", infile);
- size_t n_left = n_read;
- char *sob = buf;
+ n_left = n_read;
+ sob = buf;
while (n_left)
{
size_t split_rest = 0;
@@ -669,8 +673,8 @@ line_bytes_split (uintmax_t n_bytes, char *buf, size_t bufsize)
/* Output to eol if present. */
if (eol)
{
- split_line = true;
size_t n_write = eol - sob + 1;
+ split_line = true;
cwrite (n_out == 0, sob, n_write);
n_out += n_write;
n_left -= n_write;
@@ -738,8 +742,6 @@ static void
lines_chunk_split (uintmax_t k, uintmax_t n, char *buf, size_t bufsize,
off_t file_size)
{
- assert (n && k <= n && n <= file_size);
-
const off_t chunk_size = file_size / n;
uintmax_t chunk_no = 1;
off_t chunk_end = chunk_size - 1;
@@ -747,6 +749,8 @@ lines_chunk_split (uintmax_t k, uintmax_t n, char *buf, size_t bufsize,
bool new_file_flag = true;
bool chunk_truncated = false;
+ assert (n && k <= n && n <= file_size);
+
if (k > 1)
{
/* Start reading 1 byte before kth chunk of file. */
@@ -1133,6 +1137,8 @@ main (int argc, char **argv)
int c;
int digits_optind = 0;
off_t file_size IF_LINT (= 0);
+ void *b;
+ char *buf;
initialize_main (&argc, &argv);
set_program_name (argv[0]);
@@ -1431,8 +1437,8 @@ main (int argc, char **argv)
file_size = MAX (file_size, n_units);
}
- void *b = xmalloc (in_blk_size + 1 + page_size - 1);
- char *buf = ptr_align (b, page_size);
+ b = xmalloc (in_blk_size + 1 + page_size - 1);
+ buf = ptr_align (b, page_size);
/* When filtering, closure of one pipe must not terminate the process,
as there may still be other streams expecting input from us. */
diff --git a/src/stat.c b/src/stat.c
index b65dbe5..ca759d9 100644
--- a/src/stat.c
+++ b/src/stat.c
@@ -619,6 +619,10 @@ out_epoch_sec (char *pformat, size_t prefix_len,
int width = 0;
int precision = 0;
bool frac_left_adjust = false;
+ int divisor = 1;
+ int frac_sec;
+ int int_len;
+ int i;
if (dot)
{
@@ -640,6 +644,7 @@ out_epoch_sec (char *pformat, size_t prefix_len,
/* If a nontrivial width is given, subtract the width of the
decimal point and PRECISION digits that will be output
later. */
+ long int lwidth;
char *p = dot;
*dot = '\0';
@@ -647,13 +652,14 @@ out_epoch_sec (char *pformat, size_t prefix_len,
--p;
while (ISDIGIT (p[-1]));
- long int lwidth = strtol (p, NULL, 10);
+ lwidth = strtol (p, NULL, 10);
width = (lwidth <= INT_MAX ? lwidth : INT_MAX);
if (1 < width)
{
+ int w_d;
p += (*p == '0');
sec_prefix_len = p - pformat;
- int w_d = (decimal_point_len < width
+ w_d = (decimal_point_len < width
? width - decimal_point_len
: 0);
if (1 < w_d)
@@ -662,7 +668,8 @@ out_epoch_sec (char *pformat, size_t prefix_len,
if (1 < w)
{
char *dst = pformat;
- for (char const *src = dst; src < p; src++)
+ char const *src;
+ for (src = dst; src < p; src++)
{
if (*src == '-')
frac_left_adjust = true;
@@ -678,11 +685,9 @@ out_epoch_sec (char *pformat, size_t prefix_len,
}
}
- int divisor = 1;
- for (int i = precision; i < 9; i++)
+ for (i = precision; i < 9; i++)
divisor *= 10;
- int frac_sec = arg.tv_nsec / divisor;
- int int_len;
+ frac_sec = arg.tv_nsec / divisor;
if (TYPE_SIGNED (time_t))
{
@@ -833,7 +838,9 @@ static char const * ATTRIBUTE_WARN_UNUSED_RESULT
find_bind_mount (char const * name)
{
char const * bind_mount = NULL;
+ struct stat name_stats;
+ struct mount_entry *me;
static struct mount_entry *mount_list;
static bool tried_mount_list = false;
if (!tried_mount_list) /* attempt/warn once per process. */
@@ -843,11 +850,9 @@ find_bind_mount (char const * name)
tried_mount_list = true;
}
- struct stat name_stats;
if (stat (name, &name_stats) != 0)
return NULL;
- struct mount_entry *me;
for (me = mount_list; me; me = me->me_next)
{
if (me->me_dummy && me->me_devname[0] == '/'
@@ -952,9 +957,9 @@ get_birthtime (int fd, char const *filename, struct stat const *st)
static inline struct timespec
neg_to_zero (struct timespec ts)
{
+ struct timespec z = {0, 0};
if (0 <= ts.tv_nsec)
return ts;
- struct timespec z = {0, 0};
return z;
}
@@ -1163,11 +1168,12 @@ print_it (char const *format, int fd, char const *filename,
{
size_t len = strspn (b + 1, printf_flags);
char const *fmt_char = b + len + 1;
+ unsigned int fmt_code;
fmt_char += strspn (fmt_char, digits);
if (*fmt_char == '.')
fmt_char += 1 + strspn (fmt_char + 1, digits);
len = fmt_char - (b + 1);
- unsigned int fmt_code = *fmt_char;
+ fmt_code = *fmt_char;
memcpy (dest, b, len + 1);
b = fmt_char;
@@ -1256,6 +1262,7 @@ static bool ATTRIBUTE_WARN_UNUSED_RESULT
do_statfs (char const *filename, char const *format)
{
STRUCT_STATVFS statfsbuf;
+ bool fail;
if (STREQ (filename, "-"))
{
@@ -1271,7 +1278,7 @@ do_statfs (char const *filename, char const *format)
return false;
}
- bool fail = print_it (format, -1, filename, print_statfs, &statfsbuf);
+ fail = print_it (format, -1, filename, print_statfs, &statfsbuf);
return ! fail;
}
@@ -1282,6 +1289,7 @@ do_stat (char const *filename, char const *format,
{
int fd = STREQ (filename, "-") ? 0 : -1;
struct stat statbuf;
+ bool fail;
if (0 <= fd)
{
@@ -1305,7 +1313,7 @@ do_stat (char const *filename, char const *format,
if (S_ISBLK (statbuf.st_mode) || S_ISCHR (statbuf.st_mode))
format = format2;
- bool fail = print_it (format, fd, filename, print_stat, &statbuf);
+ fail = print_it (format, fd, filename, print_stat, &statbuf);
return ! fail;
}
@@ -1506,14 +1514,14 @@ main (int argc, char *argv[])
char *format = NULL;
char *format2;
bool ok = true;
-
+ struct lconv const *locale = localeconv ();
+
initialize_main (&argc, &argv);
set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
- struct lconv const *locale = localeconv ();
decimal_point = (locale->decimal_point[0] ? locale->decimal_point : ".");
decimal_point_len = strlen (decimal_point);
diff --git a/src/system.h b/src/system.h
index 162446c..d2863fc 100644
--- a/src/system.h
+++ b/src/system.h
@@ -502,6 +502,7 @@ is_nul (void const *buf, size_t bufsize)
void const *vp;
char const *cbuf = buf;
word const *wp = buf;
+ char const *cp;
/* Find first nonzero *word*, or the word with the sentinel. */
while (*wp++ == 0)
@@ -509,7 +510,7 @@ is_nul (void const *buf, size_t bufsize)
/* Find the first nonzero *byte*, or the sentinel. */
vp = wp - 1;
- char const *cp = vp;
+ cp = vp;
while (*cp++ == 0)
continue;
@@ -567,10 +568,11 @@ Otherwise, units default to 1024 bytes (or 512 if POSIXLY_CORRECT is set).\n\
static inline void
emit_ancillary_info (void)
{
+ const char *lc_messages;
printf (_("\n%s online help: <%s>\n"), PACKAGE_NAME, PACKAGE_URL);
/* Don't output this redundant message for English locales.
Note we still output for 'C' so that it gets included in the man page. */
- const char *lc_messages = setlocale (LC_MESSAGES, NULL);
+ lc_messages = setlocale (LC_MESSAGES, NULL);
if (lc_messages && STRNCMP_LIT (lc_messages, "en_"))
{
/* TRANSLATORS: Replace LANG_CODE in this URL with your language code
diff --git a/src/tac.c b/src/tac.c
index c76afc7..66f9b70 100644
--- a/src/tac.c
+++ b/src/tac.c
@@ -426,6 +426,7 @@ temp_stream (FILE **fp, char **file_name)
static FILE *tmp_fp;
if (tempfile == NULL)
{
+ int fd;
char const *t = getenv ("TMPDIR");
char const *tempdir = t ? t : DEFAULT_TMPDIR;
tempfile = mfile_name_concat (tempdir, "tacXXXXXX", NULL);
@@ -444,7 +445,7 @@ temp_stream (FILE **fp, char **file_name)
FIXME: clean up upon fatal signal. Don't block them, in case
$TMPFILE is a remote file system. */
- int fd = mkstemp (tempfile);
+ fd = mkstemp (tempfile);
if (fd < 0)
{
error (0, errno, _("failed to create temporary file in %s"),
@@ -536,10 +537,11 @@ tac_nonseekable (int input_fd, const char *file)
{
FILE *tmp_stream;
char *tmp_file;
+ bool ok;
if (!copy_to_temp (&tmp_stream, &tmp_file, input_fd, file))
return false;
- bool ok = tac_seekable (fileno (tmp_stream), tmp_file);
+ ok = tac_seekable (fileno (tmp_stream), tmp_file);
return ok;
}
diff --git a/src/tail.c b/src/tail.c
index 5ff738d..4fca792 100644
--- a/src/tail.c
+++ b/src/tail.c
@@ -851,6 +851,8 @@ start_lines (const char *pretty_filename, int fd, uintmax_t n_lines,
{
char buffer[BUFSIZ];
size_t bytes_read = safe_read (fd, buffer, BUFSIZ);
+ char *buffer_end;
+ char *p;
if (bytes_read == 0) /* EOF */
return -1;
if (bytes_read == SAFE_READ_ERROR) /* error */
@@ -859,11 +861,11 @@ start_lines (const char *pretty_filename, int fd, uintmax_t n_lines,
return 1;
}
- char *buffer_end = buffer + bytes_read;
+ buffer_end = buffer + bytes_read;
*read_pos += bytes_read;
- char *p = buffer;
+ p = buffer;
while ((p = memchr (p, '\n', buffer_end - p)))
{
++p;
diff --git a/src/test.c b/src/test.c
index 7596879..52a99e1 100644
--- a/src/test.c
+++ b/src/test.c
@@ -420,23 +420,27 @@ unary_operator (void)
case 'O': /* File is owned by you? */
{
+ uid_t euid;
+ uid_t NO_UID;
unary_advance ();
if (stat (argv[pos - 1], &stat_buf) != 0)
return false;
errno = 0;
- uid_t euid = geteuid ();
- uid_t NO_UID = -1;
+ euid = geteuid ();
+ NO_UID = -1;
return ! (euid == NO_UID && errno) && euid == stat_buf.st_uid;
}
case 'G': /* File is owned by your group? */
{
+ gid_t egid;
+ gid_t NO_GID;
unary_advance ();
if (stat (argv[pos - 1], &stat_buf) != 0)
return false;
errno = 0;
- gid_t egid = getegid ();
- gid_t NO_GID = -1;
+ egid = getegid ();
+ NO_GID = -1;
return ! (egid == NO_GID && errno) && egid == stat_buf.st_gid;
}
diff --git a/src/timeout.c b/src/timeout.c
index 68baa23..963a8e0 100644
--- a/src/timeout.c
+++ b/src/timeout.c
@@ -133,6 +133,7 @@ settimeout (double duration, bool warn)
resolution provided by alarm(). */
#if HAVE_TIMER_SETTIME
+{
struct timespec ts = dtotimespec (duration);
struct itimerspec its = { {0, 0}, ts };
timer_t timerid;
@@ -149,8 +150,10 @@ settimeout (double duration, bool warn)
}
else if (warn && errno != ENOSYS)
error (0, errno, _("warning: timer_create"));
+}
#endif
+{
unsigned int timeint;
if (UINT_MAX <= duration)
timeint = UINT_MAX;
@@ -161,6 +164,7 @@ settimeout (double duration, bool warn)
}
alarm (timeint);
}
+}
/* send SIG avoiding the current process. */
diff --git a/src/wc.c b/src/wc.c
index 4909d9f..8e716bd 100644
--- a/src/wc.c
+++ b/src/wc.c
@@ -597,6 +597,9 @@ main (int argc, char **argv)
char *files_from = NULL;
struct fstatus *fstatus;
struct Tokens tok;
+ bool read_tokens = false;
+ struct argv_iterator *ai;
+ int i;
initialize_main (&argc, &argv);
set_program_name (argv[0]);
@@ -653,10 +656,9 @@ main (int argc, char **argv)
|| print_linelength))
print_lines = print_words = print_bytes = true;
- bool read_tokens = false;
- struct argv_iterator *ai;
if (files_from)
{
+ struct stat st;
FILE *stream;
/* When using --files0-from=F, you may not specify any files
@@ -681,7 +683,6 @@ main (int argc, char **argv)
/* Read the file list into RAM if we can detect its size and that
size is reasonable. Otherwise, we'll read a name at a time. */
- struct stat st;
if (fstat (fileno (stream), &st) == 0
&& S_ISREG (st.st_mode)
&& st.st_size <= MIN (10 * 1024 * 1024, physmem_available () / 2))
@@ -716,7 +717,6 @@ main (int argc, char **argv)
fstatus = get_input_fstatus (nfiles, files);
number_width = compute_number_width (nfiles, fstatus);
- int i;
ok = true;
for (i = 0; /* */; i++)
{
--
2.2.2