>From 0c2bd6a6840d6f46e01e2caeaad9d42d10c34367 Mon Sep 17 00:00:00 2001 From: Collin Funk Date: Mon, 29 Jul 2024 21:16:36 -0700 Subject: [PATCH] maint: remove unnecessary inttostr usage in printf * src/cksum.c (output_crc): Use '%ju' instead of umaxtostr. * src/shred.c (dopass): Likewise. * src/csplit.c (handle_line_error, regexp_error, close_output_file) (parse_patterns): Use '%jd' instead of offtostr. * src/tail.c (xlseek): Likewise. * src/head.c (elseek): Likewise. * src/group-list.c (gidtostr_ptr): Remove function. (gidtostr): Remove macro. (print_group): Use '%ju' instead of umaxtostr. * src/id.c (gidtostr_ptr, uidtostr_ptr): Remove functions. (gidtostr, uidtostr): Remove macros. (print_user, print_full_info): Use '%ju' instead of umaxtostr. * src/sort.c (specify_nmerge): Use '%u' instead of uinttostr. --- src/cksum.c | 3 +-- src/csplit.c | 22 ++++++---------------- src/group-list.c | 17 ++++------------- src/head.c | 7 +++---- src/id.c | 41 ++++++++++------------------------------- src/shred.c | 6 +++--- src/sort.c | 6 ++---- src/tail.c | 15 ++++++--------- 8 files changed, 35 insertions(+), 82 deletions(-) diff --git a/src/cksum.c b/src/cksum.c index 9909b14f5..a97ffc26f 100644 --- a/src/cksum.c +++ b/src/cksum.c @@ -257,8 +257,7 @@ output_crc (char const *file, int binary_file, void const *digest, bool raw, return; } - char length_buf[INT_BUFSIZE_BOUND (uintmax_t)]; - printf ("%u %s", *(unsigned int *)digest, umaxtostr (length, length_buf)); + printf ("%u %ju", *(unsigned int *)digest, length); if (args) printf (" %s", file); putchar (delim); diff --git a/src/csplit.c b/src/csplit.c index 4767d8aa0..acde48bbd 100644 --- a/src/csplit.c +++ b/src/csplit.c @@ -673,7 +673,7 @@ handle_line_error (const struct control *p, intmax_t repetition) fprintf (stderr, _("%s: %s: line number out of range"), program_name, quote (imaxtostr (p->lines_required, buf))); if (repetition) - fprintf (stderr, _(" on repetition %s\n"), imaxtostr (repetition, buf)); + fprintf (stderr, _(" on repetition %jd\n"), repetition); else fprintf (stderr, "\n"); @@ -726,10 +726,7 @@ regexp_error (struct control *p, intmax_t repetition, bool ignore) program_name, quote (global_argv[p->argnum])); if (repetition) - { - char buf[INT_BUFSIZE_BOUND (intmax_t)]; - fprintf (stderr, _(" on repetition %s\n"), imaxtostr (repetition, buf)); - } + fprintf (stderr, _(" on repetition %jd\n"), repetition); else fprintf (stderr, "\n"); @@ -988,10 +985,7 @@ close_output_file (void) else { if (!suppress_count) - { - char buf[INT_BUFSIZE_BOUND (intmax_t)]; - fprintf (stdout, "%s\n", imaxtostr (bytes_written, buf)); - } + fprintf (stdout, "%jd\n", bytes_written); } output_stream = nullptr; } @@ -1152,13 +1146,9 @@ parse_patterns (int argc, int start, char **argv) error (EXIT_FAILURE, 0, _("%s: line number must be greater than zero"), argv[i]); if (val < last_val) - { - char buf[INT_BUFSIZE_BOUND (intmax_t)]; - error (EXIT_FAILURE, 0, - _("line number %s is smaller than preceding line number," - " %s"), - quote (argv[i]), imaxtostr (last_val, buf)); - } + error (EXIT_FAILURE, 0, + _("line number %s is smaller than preceding line number," + " %jd"), quote (argv[i]), last_val); if (val == last_val) error (0, 0, diff --git a/src/group-list.c b/src/group-list.c index d6af680ef..e8c9a002c 100644 --- a/src/group-list.c +++ b/src/group-list.c @@ -86,17 +86,6 @@ print_group_list (char const *username, return ok; } -/* Convert a gid_t to string. Do not use this function directly. - Instead, use it via the gidtostr macro. - Beware that it returns a pointer to static storage. */ -static char * -gidtostr_ptr (gid_t const *gid) -{ - static char buf[INT_BUFSIZE_BOUND (uintmax_t)]; - return umaxtostr (*gid, buf); -} -#define gidtostr(g) gidtostr_ptr (&(g)) - /* Print the name or value of group ID GID. */ extern bool print_group (gid_t gid, bool use_name) @@ -123,7 +112,9 @@ print_group (gid_t gid, bool use_name) } } - char *s = grp ? grp->gr_name : gidtostr (gid); - fputs (s, stdout); + if (grp) + printf ("%s", grp->gr_name); + else + printf ("%ju", (uintmax_t) gid); return ok; } diff --git a/src/head.c b/src/head.c index 4612a8e10..9feda5653 100644 --- a/src/head.c +++ b/src/head.c @@ -224,15 +224,14 @@ static off_t elseek (int fd, off_t offset, int whence, char const *filename) { off_t new_offset = lseek (fd, offset, whence); - char buf[INT_BUFSIZE_BOUND (offset)]; if (new_offset < 0) error (0, errno, _(whence == SEEK_SET - ? N_("%s: cannot seek to offset %s") - : N_("%s: cannot seek to relative offset %s")), + ? N_("%s: cannot seek to offset %jd") + : N_("%s: cannot seek to relative offset %jd")), quotef (filename), - offtostr (offset, buf)); + (intmax_t) offset); return new_offset; } diff --git a/src/id.c b/src/id.c index 38d5517bd..80a116e7a 100644 --- a/src/id.c +++ b/src/id.c @@ -303,28 +303,6 @@ main (int argc, char **argv) return ok ? EXIT_SUCCESS : EXIT_FAILURE; } -/* Convert a gid_t to string. Do not use this function directly. - Instead, use it via the gidtostr macro. - Beware that it returns a pointer to static storage. */ -static char * -gidtostr_ptr (gid_t const *gid) -{ - static char buf[INT_BUFSIZE_BOUND (uintmax_t)]; - return umaxtostr (*gid, buf); -} -#define gidtostr(g) gidtostr_ptr (&(g)) - -/* Convert a uid_t to string. Do not use this function directly. - Instead, use it via the uidtostr macro. - Beware that it returns a pointer to static storage. */ -static char * -uidtostr_ptr (uid_t const *uid) -{ - static char buf[INT_BUFSIZE_BOUND (uintmax_t)]; - return umaxtostr (*uid, buf); -} -#define uidtostr(u) uidtostr_ptr (&(u)) - /* Print the name or value of user ID UID. */ static void @@ -337,14 +315,15 @@ print_user (uid_t uid) pwd = getpwuid (uid); if (pwd == nullptr) { - error (0, 0, _("cannot find name for user ID %s"), - uidtostr (uid)); + error (0, 0, _("cannot find name for user ID %ju"), (uintmax_t) uid); ok &= false; } } - char *s = pwd ? pwd->pw_name : uidtostr (uid); - fputs (s, stdout); + if (pwd) + printf ("%s", pwd->pw_name); + else + printf ("%ju", (uintmax_t) uid); } /* Print all of the info about the user's user and group IDs. */ @@ -355,19 +334,19 @@ print_full_info (char const *username) struct passwd *pwd; struct group *grp; - printf (_("uid=%s"), uidtostr (ruid)); + printf (_("uid=%ju"), (uintmax_t) ruid); pwd = getpwuid (ruid); if (pwd) printf ("(%s)", pwd->pw_name); - printf (_(" gid=%s"), gidtostr (rgid)); + printf (_(" gid=%ju"), (uintmax_t) rgid); grp = getgrgid (rgid); if (grp) printf ("(%s)", grp->gr_name); if (euid != ruid) { - printf (_(" euid=%s"), uidtostr (euid)); + printf (_(" euid=%ju"), (uintmax_t) euid); pwd = getpwuid (euid); if (pwd) printf ("(%s)", pwd->pw_name); @@ -375,7 +354,7 @@ print_full_info (char const *username) if (egid != rgid) { - printf (_(" egid=%s"), gidtostr (egid)); + printf (_(" egid=%ju"), (uintmax_t) egid); grp = getgrgid (egid); if (grp) printf ("(%s)", grp->gr_name); @@ -408,7 +387,7 @@ print_full_info (char const *username) { if (i > 0) putchar (','); - fputs (gidtostr (groups[i]), stdout); + printf ("%ju", (uintmax_t) groups[i]); grp = getgrgid (groups[i]); if (grp) printf ("(%s)", grp->gr_name); diff --git a/src/shred.c b/src/shred.c index 564d3cc62..ecb207a8b 100644 --- a/src/shred.c +++ b/src/shred.c @@ -485,7 +485,6 @@ dopass (int fd, struct stat const *st, char const *qname, off_t *sizep, else { int errnum = errno; - char buf[INT_BUFSIZE_BOUND (uintmax_t)]; /* Retry without direct I/O since this may not be supported at all on some (file) systems, or with the current size. @@ -498,8 +497,9 @@ dopass (int fd, struct stat const *st, char const *qname, off_t *sizep, try_without_directio = true; continue; } - error (0, errnum, _("%s: error writing at offset %s"), - qname, umaxtostr (offset + soff, buf)); + uintmax_t error_offset = offset + soff; + error (0, errnum, _("%s: error writing at offset %ju"), + qname, error_offset); /* 'shred' is often used on bad media, before throwing it out. Thus, it shouldn't give up on bad blocks. This diff --git a/src/sort.c b/src/sort.c index 6c273fab9..3357733c1 100644 --- a/src/sort.c +++ b/src/sort.c @@ -1368,13 +1368,11 @@ specify_nmerge (int oi, char c, char const *s) if (e == LONGINT_OVERFLOW) { - char max_nmerge_buf[INT_BUFSIZE_BOUND (max_nmerge)]; error (0, 0, _("--%s argument %s too large"), long_options[oi].name, quote (s)); error (SORT_FAILURE, 0, - _("maximum --%s argument with current rlimit is %s"), - long_options[oi].name, - uinttostr (max_nmerge, max_nmerge_buf)); + _("maximum --%s argument with current rlimit is %u"), + long_options[oi].name, max_nmerge); } else xstrtol_fatal (e, oi, c, long_options, s); diff --git a/src/tail.c b/src/tail.c index a3b46ca2d..f373f768e 100644 --- a/src/tail.c +++ b/src/tail.c @@ -481,27 +481,24 @@ static off_t xlseek (int fd, off_t offset, int whence, char const *filename) { off_t new_offset = lseek (fd, offset, whence); - char buf[INT_BUFSIZE_BOUND (offset)]; - char *s; if (0 <= new_offset) return new_offset; - s = offtostr (offset, buf); switch (whence) { case SEEK_SET: - error (EXIT_FAILURE, errno, _("%s: cannot seek to offset %s"), - quotef (filename), s); + error (EXIT_FAILURE, errno, _("%s: cannot seek to offset %jd"), + quotef (filename), (intmax_t) offset); break; case SEEK_CUR: - error (EXIT_FAILURE, errno, _("%s: cannot seek to relative offset %s"), - quotef (filename), s); + error (EXIT_FAILURE, errno, _("%s: cannot seek to relative offset %jd"), + quotef (filename), (intmax_t) offset); break; case SEEK_END: error (EXIT_FAILURE, errno, - _("%s: cannot seek to end-relative offset %s"), - quotef (filename), s); + _("%s: cannot seek to end-relative offset %jd"), + quotef (filename), (intmax_t) offset); break; default: unreachable (); -- 2.45.2