diff options
author | Eric Blake <ebb9@byu.net> | 2008-06-11 15:02:20 -0600 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2008-06-13 23:00:04 +0200 |
commit | bbbc35c9ed194b0d458f2a2827dfbceb9056ef7d (patch) | |
tree | ea3a80390745a49e5fc6aa94768c45c51f427294 /src/od.c | |
parent | c49b2e32bbdca33464179335000c27a8a169dede (diff) | |
download | coreutils-bbbc35c9ed194b0d458f2a2827dfbceb9056ef7d.tar.xz |
od: use gnulib printf replacement as necessary
* src/od.c (includes): Add xprintf.h.
(PRINT_TYPE): New macro, using xprintf instead of printf.
(print_s_char, print_char, print_s_short, print_short, print_int)
(print_long, print_long_long, print_float, print_double)
(print_long_double): Factor into PRINT_TYPE macro.
(print_named_ascii, print_ascii): Use xprintf.
* NEWS: Mention this as a bug fix.
Diffstat (limited to 'src/od.c')
-rw-r--r-- | src/od.c | 110 |
1 files changed, 22 insertions, 88 deletions
@@ -25,6 +25,7 @@ #include "system.h" #include "error.h" #include "quote.h" +#include "xprintf.h" #include "xstrtol.h" /* The official name of this program (e.g., no `g' prefix). */ @@ -385,95 +386,28 @@ implies 32. By default, od uses -A o -t oS -w16.\n\ /* Define the print functions. */ -static void -print_s_char (size_t n_bytes, void const *block, char const *fmt_string) -{ - signed char const *p = block; - size_t i; - for (i = n_bytes / sizeof *p; i != 0; i--) - printf (fmt_string, *p++); -} - -static void -print_char (size_t n_bytes, void const *block, char const *fmt_string) -{ - unsigned char const *p = block; - size_t i; - for (i = n_bytes / sizeof *p; i != 0; i--) - printf (fmt_string, *p++); -} - -static void -print_s_short (size_t n_bytes, void const *block, char const *fmt_string) -{ - short int const *p = block; - size_t i; - for (i = n_bytes / sizeof *p; i != 0; i--) - printf (fmt_string, *p++); -} - -static void -print_short (size_t n_bytes, void const *block, char const *fmt_string) -{ - unsigned short int const *p = block; - size_t i; - for (i = n_bytes / sizeof *p; i != 0; i--) - printf (fmt_string, *p++); +#define PRINT_TYPE(N, T) \ +static void \ +N (size_t n_bytes, void const *block, char const *fmt_string) \ +{ \ + T const *p = block; \ + size_t i; \ + for (i = n_bytes / sizeof *p; i != 0; i--) \ + xprintf (fmt_string, *p++); \ } -static void -print_int (size_t n_bytes, void const *block, char const *fmt_string) -{ - unsigned int const *p = block; - size_t i; - for (i = n_bytes / sizeof *p; i != 0; i--) - printf (fmt_string, *p++); -} +PRINT_TYPE (print_s_char, signed char) +PRINT_TYPE (print_char, unsigned char) +PRINT_TYPE (print_s_short, short int) +PRINT_TYPE (print_short, unsigned short int) +PRINT_TYPE (print_int, unsigned int) +PRINT_TYPE (print_long, unsigned long int) +PRINT_TYPE (print_long_long, unsigned_long_long_int) +PRINT_TYPE (print_float, float) +PRINT_TYPE (print_double, double) +PRINT_TYPE (print_long_double, long double) -static void -print_long (size_t n_bytes, void const *block, char const *fmt_string) -{ - unsigned long int const *p = block; - size_t i; - for (i = n_bytes / sizeof *p; i != 0; i--) - printf (fmt_string, *p++); -} - -static void -print_long_long (size_t n_bytes, void const *block, char const *fmt_string) -{ - unsigned_long_long_int const *p = block; - size_t i; - for (i = n_bytes / sizeof *p; i != 0; i--) - printf (fmt_string, *p++); -} - -static void -print_float (size_t n_bytes, void const *block, char const *fmt_string) -{ - float const *p = block; - size_t i; - for (i = n_bytes / sizeof *p; i != 0; i--) - printf (fmt_string, *p++); -} - -static void -print_double (size_t n_bytes, void const *block, char const *fmt_string) -{ - double const *p = block; - size_t i; - for (i = n_bytes / sizeof *p; i != 0; i--) - printf (fmt_string, *p++); -} - -static void -print_long_double (size_t n_bytes, void const *block, char const *fmt_string) -{ - long double const *p = block; - size_t i; - for (i = n_bytes / sizeof *p; i != 0; i--) - printf (fmt_string, *p++); -} +#undef PRINT_TYPE static void dump_hexl_mode_trailer (size_t n_bytes, const char *block) @@ -511,7 +445,7 @@ print_named_ascii (size_t n_bytes, void const *block, s = buf; } - printf (" %3s", s); + xprintf (" %3s", s); } } @@ -566,7 +500,7 @@ print_ascii (size_t n_bytes, void const *block, s = buf; } - printf (" %3s", s); + xprintf (" %3s", s); } } |