diff options
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | cfg.mk | 17 | ||||
-rw-r--r-- | src/dd.c | 5 | ||||
-rw-r--r-- | src/od.c | 3 | ||||
-rw-r--r-- | src/rm.c | 10 | ||||
-rw-r--r-- | src/split.c | 4 |
6 files changed, 24 insertions, 18 deletions
@@ -25,6 +25,9 @@ GNU coreutils NEWS -*- outline -*- character at the 4GiB position. [the bug dates back to the initial implementation] + rm indicates the correct number of arguments in its confirmation prompt, + on all platforms. [bug introduced in coreutils-8.22] + ** New features chroot accepts the new --skip-chdir option to not change the working directory @@ -213,14 +213,15 @@ sc_check-I18N-AUTHORS: '$$(LIBICONV)' 1>&2; exit 1; }; \ done -# Ensure %j is not used for intmax_t as it's not universally supported. -# There are issues on HPUX for example. But note that %ju was used between -# coreutils 8.13 (2011-10) and 8.20 (2012-10) without any reported issue, -# and the particular issue this check is associated with was for %*jx. -# So we may be able to relax this restriction soon. -sc_prohibit-j-printf-format: - @cd $(srcdir)/src && GIT_PAGER= git grep -n '%[0*]*j[udx]' *.c \ - && { echo '$(ME): Use PRI*MAX instead of %j' 1>&2; exit 1; } \ +# Disallow the C99 printf size specifiers %z and %j as they're not portable. +# The gnulib printf replacement does support them, however the printf +# replacement is not currently explicitly depended on by the gnulib error() +# module for example. Also we use fprintf() in a few places to output simple +# formats but don't use the gnulib module as it is seen as overkill at present. +# We'd have to adjust the above gnulib items before disabling this. +sc_prohibit-c99-printf-format: + @cd $(srcdir)/src && GIT_PAGER= git grep -n '%[0*]*[jz][udx]' *.c \ + && { echo '$(ME): Use PRI*MAX instead of %j or %z' 1>&2; exit 1; } \ || : # Ensure the alternative __attribute (keyword) form isn't used as @@ -696,7 +696,7 @@ alloc_ibuf (void) char *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)"), + _("memory exhausted by input buffer of size %"PRIuMAX" bytes (%s)"), input_blocksize, human_size (input_blocksize)); real_buf += SWAB_ALIGN_OFFSET; /* allow space for swab */ @@ -718,7 +718,8 @@ alloc_obuf (void) char *real_obuf = malloc (output_blocksize + OUTPUT_BLOCK_SLOP); if (!real_obuf) error (EXIT_FAILURE, 0, - _("memory exhausted by output buffer of size %zu bytes (%s)"), + _("memory exhausted by output buffer of size %"PRIuMAX + " bytes (%s)"), output_blocksize, human_size (output_blocksize)); obuf = ptr_align (real_obuf, page_size); } @@ -1962,7 +1962,8 @@ main (int argc, char **argv) } #ifdef DEBUG - printf ("lcm=%d, width_per_block=%zu\n", l_c_m, width_per_block); + printf ("lcm=%d, width_per_block=%"PRIuMAX"\n", l_c_m, + (uintmax_t) width_per_block); for (i = 0; i < n_specs; i++) { int fields_per_block = bytes_per_block / width_bytes[spec[i].size]; @@ -332,18 +332,18 @@ main (int argc, char **argv) quote ("/")); } - size_t n_files = argc - optind; + uintmax_t n_files = argc - optind; char **file = argv + optind; if (prompt_once && (x.recursive || 3 < n_files)) { fprintf (stderr, (x.recursive - ? ngettext ("%s: remove %zu argument recursively? ", - "%s: remove %zu arguments recursively? ", + ? ngettext ("%s: remove %"PRIuMAX" argument recursively? ", + "%s: remove %"PRIuMAX" arguments recursively? ", select_plural (n_files)) - : ngettext ("%s: remove %zu argument? ", - "%s: remove %zu arguments? ", + : ngettext ("%s: remove %"PRIuMAX" argument? ", + "%s: remove %"PRIuMAX" arguments? ", select_plural (n_files))), program_name, n_files); if (!yesno ()) diff --git a/src/split.c b/src/split.c index ec0da7deb..0eec3ecc2 100644 --- a/src/split.c +++ b/src/split.c @@ -158,7 +158,7 @@ set_suffix_length (uintmax_t n_units, enum Split_type split_type) { #define DEFAULT_SUFFIX_LENGTH 2 - size_t suffix_needed = 0; + uintmax_t suffix_needed = 0; /* The suffix auto length feature is incompatible with a user specified start value as the generated suffixes @@ -183,7 +183,7 @@ set_suffix_length (uintmax_t n_units, enum Split_type split_type) if (suffix_length < suffix_needed) { error (EXIT_FAILURE, 0, - _("the suffix length needs to be at least %zu"), + _("the suffix length needs to be at least %"PRIuMAX), suffix_needed); } suffix_auto = false; |