From 7d1fe8868e29ae2644831685df4a29638721d6ba Mon Sep 17 00:00:00 2001 From: Pádraig Brady Date: Thu, 27 Nov 2014 00:51:00 +0000 Subject: rm: fix prompted number of arguments to remove on some platforms "zu" was output on solaris 8 for example rather than the number, since coreutils-8.22. * cfg.mk: Disallow %z, since we don't currently use the gnulib fprintf module, so any usage with it is non portable. Also our usage with error() currently works only through an ancillary dependency on the vfprintf gnulib module. * src/rm.c (main): Use %PRIuMAX rather than %zu for portability. * src/dd.c (alloc_[io]buf): Likewise for consistency. * src/od.c (main): Likewise. * src/split.c (set_suffix_length): Likewise. * NEWS: Mention the rm bug fix. Reported in http://bugs.gnu.org/19184 --- src/dd.c | 5 +++-- src/od.c | 3 ++- src/rm.c | 10 +++++----- src/split.c | 4 ++-- 4 files changed, 12 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/dd.c b/src/dd.c index 78433ff58..0b5a4b20a 100644 --- a/src/dd.c +++ b/src/dd.c @@ -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); } diff --git a/src/od.c b/src/od.c index 7ac663ad4..79bc7fc71 100644 --- a/src/od.c +++ b/src/od.c @@ -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]; diff --git a/src/rm.c b/src/rm.c index f7adf5b62..4c8ee6e7c 100644 --- a/src/rm.c +++ b/src/rm.c @@ -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; -- cgit v1.2.3-54-g00ecf