diff options
Diffstat (limited to 'text-utils/hexdump.c')
-rw-r--r-- | text-utils/hexdump.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/text-utils/hexdump.c b/text-utils/hexdump.c index 73b3a94..3674455 100644 --- a/text-utils/hexdump.c +++ b/text-utils/hexdump.c @@ -66,6 +66,7 @@ parse_args(int argc, char **argv, struct hexdump *hex) static const struct option longopts[] = { {"one-byte-octal", no_argument, NULL, 'b'}, + {"one-byte-hex", no_argument, NULL, 'X'}, {"one-byte-char", no_argument, NULL, 'c'}, {"canonical", no_argument, NULL, 'C'}, {"two-bytes-decimal", no_argument, NULL, 'd'}, @@ -82,12 +83,16 @@ parse_args(int argc, char **argv, struct hexdump *hex) {NULL, no_argument, NULL, 0} }; - while ((ch = getopt_long(argc, argv, "bcCde:f:L::n:os:vxhV", longopts, NULL)) != -1) { + while ((ch = getopt_long(argc, argv, "bXcCde:f:L::n:os:vxhV", longopts, NULL)) != -1) { switch (ch) { case 'b': add_fmt(hex_offt, hex); add_fmt("\"%07.7_ax \" 16/1 \"%03o \" \"\\n\"", hex); break; + case 'X': + add_fmt("\"%07.7_Ax\n\"", hex); + add_fmt("\"%07.7_ax \" 16/1 \" %02x \" \"\\n\"", hex); + break; case 'c': add_fmt(hex_offt, hex); add_fmt("\"%07.7_ax \" 16/1 \"%3_c \" \"\\n\"", hex); @@ -166,6 +171,7 @@ void __attribute__((__noreturn__)) usage(void) fputs(USAGE_OPTIONS, out); fputs(_(" -b, --one-byte-octal one-byte octal display\n"), out); + fputs(_(" -X, --one-byte-hex one-byte hexadecimal display\n"), out); fputs(_(" -c, --one-byte-char one-byte character display\n"), out); fputs(_(" -C, --canonical canonical hex+ASCII display\n"), out); fputs(_(" -d, --two-bytes-decimal two-byte decimal display\n"), out); @@ -181,12 +187,12 @@ void __attribute__((__noreturn__)) usage(void) fputs(_(" -v, --no-squeezing output identical lines\n"), out); fputs(USAGE_SEPARATOR, out); - printf(USAGE_HELP_OPTIONS(27)); + fprintf(out, USAGE_HELP_OPTIONS(27)); fputs(USAGE_ARGUMENTS, out); - printf(USAGE_ARG_SIZE(_("<length> and <offset>"))); + fprintf(out, USAGE_ARG_SIZE(_("<length> and <offset>"))); - printf(USAGE_MAN_TAIL("hexdump(1)")); + fprintf(out, USAGE_MAN_TAIL("hexdump(1)")); exit(EXIT_SUCCESS); } |