jfb2 writes in Bug 119:
[oweals/busybox.git] / coreutils / od.c
index 5eaaf502482debc1776075ad935ed6df1b49e9d3..6a138e838dbf66bf3a7c9a64840cc93515addce0 100644 (file)
@@ -155,25 +155,27 @@ static const char * const add_strings[] = {
        "4/4 \"    %011o \" \"\\n\"",                   /* O */
 };
 
-static const signed char od_opts[] = "aBbcDdeFfHhIiLlOovXx";
+static const signed char od_opts[] = "aBbcDdeFfHhIiLlOoXxv";
 
 static const signed char od_o2si[] = {
        0, 1, 2, 3, 5,
        4, 6, 6, 7, 8,
        9, 0xa, 0xb, 0xa, 0xa,
-       0xb, 1, -1, 8, 9,
+       0xb, 1, 8, 9,
 };
 
 int od_main(int argc, char **argv)
 {
        int ch;
-       bb_dump_vflag = FIRST;
-       bb_dump_length = -1;
        int first = 1;
        signed char *p;
+       bb_dump_vflag = FIRST;
+       bb_dump_length = -1;
 
        while ((ch = getopt(argc, argv, od_opts)) > 0) {
-               if (((p = strchr(od_opts, ch)) != NULL) && (*p >= 0)) {
+               if (ch == 'v') {
+                       bb_dump_vflag = ALL;
+               } else if (((p = strchr(od_opts, ch)) != NULL) && (*p >= 0)) {
                        if (first) {
                                first = 0;
                                bb_dump_add("\"%07.7_Ao\n\"");
@@ -182,8 +184,6 @@ int od_main(int argc, char **argv)
                                bb_dump_add("\"         \"");
                        }
                        bb_dump_add(add_strings[od_o2si[(int)(p-od_opts)]]);
-               } else if (ch == 'v') {
-                       bb_dump_vflag = ALL;
                } else {        /* P, p, s, w, or other unhandled */
                        bb_show_usage();
                }