]> git.ipfire.org Git - thirdparty/util-linux.git/blobdiff - text-utils/hexdump.c
misc: cosmetics, remove argument from usage(FILE*)
[thirdparty/util-linux.git] / text-utils / hexdump.c
index ec9fecbec21c866fab75858da9085aea7d8821a3..53d10a6d94ccaac273ee6ec24548446c0480f53a 100644 (file)
@@ -66,10 +66,10 @@ parse_args(int argc, char **argv, struct hexdump *hex)
 
        static const struct option longopts[] = {
                {"one-byte-octal", no_argument, NULL, 'b'},
-               {"one-byte-char", required_argument, NULL, 'c'},
-               {"canonical", required_argument, NULL, 'C'},
+               {"one-byte-char", no_argument, NULL, 'c'},
+               {"canonical", no_argument, NULL, 'C'},
                {"two-bytes-decimal", no_argument, NULL, 'd'},
-               {"two-bytes-octal", required_argument, NULL, 'o'},
+               {"two-bytes-octal", no_argument, NULL, 'o'},
                {"two-bytes-hex", no_argument, NULL, 'x'},
                {"format", required_argument, NULL, 'e'},
                {"format-file", required_argument, NULL, 'f'},
@@ -107,7 +107,7 @@ parse_args(int argc, char **argv, struct hexdump *hex)
                case 'f':
                        addfile(optarg, hex);
                        break;
-                case 'L':
+               case 'L':
                        colormode = UL_COLORMODE_AUTO;
                        if (optarg)
                                colormode = colormode_or_err(optarg,
@@ -131,13 +131,13 @@ parse_args(int argc, char **argv, struct hexdump *hex)
                        add_fmt("\"%07.7_ax \" 8/2 \"   %04x \" \"\\n\"", hex);
                        break;
                case 'h':
-                       usage(stdout);
+                       usage();
                case 'V':
                        printf(UTIL_LINUX_VERSION);
                        exit(EXIT_SUCCESS);
                        break;
                default:
-                       usage(stderr);
+                       errtryhelp(EXIT_FAILURE);
                }
        }
 
@@ -149,10 +149,15 @@ parse_args(int argc, char **argv, struct hexdump *hex)
        return optind;
 }
 
-void __attribute__((__noreturn__)) usage(FILE *out)
+void __attribute__((__noreturn__)) usage(void)
 {
+       FILE *out = stdout;
        fputs(USAGE_HEADER, out);
        fprintf(out, _(" %s [options] <file>...\n"), program_invocation_short_name);
+
+       fputs(USAGE_SEPARATOR, out);
+       fputs(_("Display file contents in hexadecimal, decimal, octal, or ascii.\n"), out);
+
        fputs(USAGE_OPTIONS, out);
        fputs(_(" -b, --one-byte-octal      one-byte octal display\n"), out);
        fputs(_(" -c, --one-byte-char       one-byte character display\n"), out);
@@ -161,6 +166,8 @@ void __attribute__((__noreturn__)) usage(FILE *out)
        fputs(_(" -o, --two-bytes-octal     two-byte octal display\n"), out);
        fputs(_(" -x, --two-bytes-hex       two-byte hexadecimal display\n"), out);
        fputs(_(" -L, --color[=<mode>]      interpret color formatting specifiers\n"), out);
+       fprintf(out,
+               "                             %s\n", USAGE_COLORS_DEFAULT);
        fputs(_(" -e, --format <format>     format string to be used for displaying data\n"), out);
        fputs(_(" -f, --format-file <file>  file that contains format strings\n"), out);
        fputs(_(" -n, --length <length>     interpret only length bytes of input\n"), out);
@@ -171,7 +178,7 @@ void __attribute__((__noreturn__)) usage(FILE *out)
        fputs(USAGE_VERSION, out);
        fprintf(out, USAGE_MAN_TAIL("hexdump(1)"));
 
-       exit(out == stderr ? EXIT_FAILURE : EXIT_SUCCESS);
+       exit(EXIT_SUCCESS);
 }
 
 int main(int argc, char **argv)
@@ -179,7 +186,6 @@ int main(int argc, char **argv)
        struct list_head *p;
        struct hexdump_fs *tfs;
        int ret;
-       char *c;
 
        struct hexdump *hex = xcalloc(1, sizeof (struct hexdump));
        hex->length = -1;
@@ -190,11 +196,7 @@ int main(int argc, char **argv)
        textdomain(PACKAGE);
        atexit(close_stdout);
 
-       if (!(c = strrchr(argv[0], 'o')) || strcmp(c, "od")) {
-               argv += parse_args(argc, argv, hex);
-       } else
-               errx(EXIT_FAILURE, _("calling hexdump as od has been deprecated "
-                                    "in favour to GNU coreutils od."));
+       argv += parse_args(argc, argv, hex);
 
        /* figure out the data block size */
        hex->blocksize = 0;