od: support -DOHXIL
No binary (build failed)
—
(log yok)
| @@ -22,7 +22,9 @@ | |
| //usage:#if !ENABLE_DESKTOP | |
| //usage:#define od_trivial_usage | |
| - | //usage: "[-aBbcDdeFfHhIiLlOoXxsv] [FILE]" |
| + | //usage: "[-abcdeFfhIiLloxsv] [FILE]" |
| + | // We also support -BDOHXIL, but they are not documented in coreutils 9.1 |
| + | // manpage/help, so don't show them either. |
| //usage:#define od_full_usage "\n\n" | |
| //usage: "Print FILE (or stdin) unambiguously, as octal bytes by default" | |
| //usage:#endif | |
| @@ -27,6 +27,8 @@ | |
| //usage:#if ENABLE_DESKTOP | |
| //usage:#define od_trivial_usage | |
| //usage: "[-abcdfhilovxs] [-t TYPE] [-A RADIX] [-N SIZE] [-j SKIP] [-S MINSTR] [-w WIDTH] [FILE]..." | |
| + | // We also support -BDOHXIL, but they are not documented in coreutils 9.1 |
| + | // manpage/help, so don't show them either. |
| // We don't support: | |
| // ... [FILE] [[+]OFFSET[.][b]] | |
| // Support is buggy for: | |
| @@ -43,27 +45,33 @@ enum { | |
| OPT_b = 1 << 3, | |
| OPT_c = 1 << 4, | |
| OPT_d = 1 << 5, | |
| - | OPT_f = 1 << 6, |
| - | OPT_h = 1 << 7, |
| - | OPT_i = 1 << 8, |
| - | OPT_j = 1 << 9, |
| - | OPT_l = 1 << 10, |
| - | OPT_o = 1 << 11, |
| - | OPT_B = 1 << 12, /* undocumented synonym to -o */ |
| - | OPT_t = 1 << 13, |
| + | OPT_D = 1 << 6, /* undocumented in coreutils 9.1 */ |
| + | OPT_f = 1 << 7, |
| + | OPT_h = 1 << 8, |
| + | OPT_H = 1 << 9, /* undocumented in coreutils 9.1 */ |
| + | OPT_i = 1 << 10, |
| + | OPT_I = 1 << 11, /* undocumented in coreutils 9.1 */ |
| + | OPT_j = 1 << 12, |
| + | OPT_l = 1 << 13, |
| + | OPT_L = 1 << 14, /* undocumented in coreutils 9.1 */ |
| + | OPT_o = 1 << 15, |
| + | OPT_O = 1 << 16, /* undocumented in coreutils 9.1 */ |
| + | OPT_B = 1 << 17, /* undocumented synonym to -o */ |
| + | OPT_t = 1 << 18, |
| /* When zero and two or more consecutive blocks are equal, format | |
| only the first block and output an asterisk alone on the following | |
| line to indicate that identical blocks have been elided: */ | |
| - | OPT_v = 1 << 14, |
| - | OPT_x = 1 << 15, |
| - | OPT_s = 1 << 16, |
| - | OPT_S = 1 << 17, |
| - | OPT_w = 1 << 18, |
| - | OPT_traditional = (1 << 19) * ENABLE_LONG_OPTS, |
| + | OPT_v = 1 << 19, |
| + | OPT_x = 1 << 20, |
| + | OPT_X = 1 << 21, /* undocumented in coreutils 9.1 */ |
| + | OPT_s = 1 << 22, |
| + | OPT_S = 1 << 23, |
| + | OPT_w = 1 << 24, |
| + | OPT_traditional = (1 << 25) * ENABLE_LONG_OPTS, |
| }; | |
| #define OD_GETOPT32() getopt32long(argv, \ | |
| - | "A:N:abcdfhij:loBt:*vxsS:w:+:", od_longopts, \ |
| + | "A:N:abcdDfhHiIj:lLoOBt:*vxXsS:w:+:", od_longopts, \ |
| /* -w with optional param */ \ | |
| /* -S was -s and also had optional parameter */ \ | |
| /* but in coreutils 6.3 it was renamed and now has */ \ | |
| @@ -1245,14 +1253,17 @@ int od_main(int argc UNUSED_PARAM, char **argv) | |
| if (opt & OPT_b) decode_format_string("oC"); | |
| if (opt & OPT_c) decode_format_string("c"); | |
| if (opt & OPT_d) decode_format_string("u2"); | |
| + | if (opt & OPT_D) decode_format_string("uI"); |
| if (opt & OPT_f) decode_format_string("fF"); | |
| if (opt & (OPT_h|OPT_x)) decode_format_string("x2"); | |
| + | if (opt & (OPT_H|OPT_X)) decode_format_string("xI"); |
| if (opt & OPT_i) decode_format_string("dI"); | |
| if (opt & OPT_j) n_bytes_to_skip = xstrtooff_sfx(str_j, 0, bkm_suffixes); | |
| /* This probably also depends on word width of the arch (what is "long"?) */ | |
| /* should be "d4" or "d8" depending on sizeof(long)? */ | |
| - | if (opt & OPT_l) decode_format_string("d8"); |
| + | if (opt & (OPT_I|OPT_l|OPT_L)) decode_format_string("d8"); |
| if (opt & (OPT_o|OPT_B)) decode_format_string("o2"); | |
| + | if (opt & OPT_O) decode_format_string("oI"); |
| while (lst_t) { | |
| decode_format_string(llist_pop(&lst_t)); | |
| } | |
| @@ -90,9 +90,8 @@ testing "od -d (little-endian)" \ | |
| "" "$input" | |
| SKIP= | |
| - | optional !DESKTOP #DESKTOP: unrecognized option: D |
| $le || SKIP=1 | |
| - | testing "od -D (!DESKTOP little-endian)" \ |
| + | testing "od -D (little-endian)" \ |
| "od -D" \ | |
| "\ | |
| 0000000 167969281 4265820737 | |
| @@ -133,9 +132,8 @@ testing "od -f (little-endian)" \ | |
| "" "$input" | |
| SKIP= | |
| - | optional !DESKTOP #DESKTOP: unrecognized option: H |
| $le || SKIP=1 | |
| - | testing "od -H (!DESKTOP little-endian)" \ |
| + | testing "od -H (little-endian)" \ |
| "od -H" \ | |
| "\ | |
| 0000000 0a030201 fe434241 | |
| @@ -144,9 +142,8 @@ testing "od -H (!DESKTOP little-endian)" \ | |
| "" "$input" | |
| SKIP= | |
| - | optional !DESKTOP #DESKTOP: unrecognized option: X |
| $le || SKIP=1 | |
| - | testing "od -X (!DESKTOP little-endian)" \ |
| + | testing "od -X (little-endian)" \ |
| "od -X" \ | |
| "\ | |
| 0000000 0a030201 fe434241 | |
| @@ -175,51 +172,42 @@ testing "od -x (little-endian)" \ | |
| "" "$input" | |
| SKIP= | |
| - | optional !DESKTOP #DESKTOP: unrecognized option: I |
| $le || SKIP=1 | |
| - | testing "od -I (!DESKTOP little-endian)" \ |
| - | "od -I" \ |
| + | testing "od -i (little-endian)" \ |
| + | "od -i" \ |
| "\ | |
| - | 0000000 -125183517527965183 |
| + | 0000000 167969281 -29146559 |
| 0000010 | |
| " \ | |
| "" "$input" | |
| SKIP= | |
| - | optional !DESKTOP #DESKTOP: unrecognized option: L |
| $le || SKIP=1 | |
| - | testing "od -L (!DESKTOP little-endian)" \ |
| - | "od -L" \ |
| + | testing "od -O (little-endian)" \ |
| + | "od -O" \ |
| "\ | |
| - | 0000000 -125183517527965183 |
| + | 0000000 01200601001 37620641101 |
| 0000010 | |
| " \ | |
| "" "$input" | |
| SKIP= | |
| + | # This probably also depends on word width of the arch (what is "long"?) |
| $le || SKIP=1 | |
| - | testing "od -i (little-endian)" \ |
| - | "od -i" \ |
| + | testing "od -I (little-endian)" \ |
| + | "od -I" \ |
| "\ | |
| - | 0000000 167969281 -29146559 |
| + | 0000000 -125183517527965183 |
| 0000010 | |
| " \ | |
| "" "$input" | |
| - | SKIP= |
| - | |
| - | optional !DESKTOP #DESKTOP: unrecognized option: O |
| - | $le || SKIP=1 |
| - | testing "od -O (!DESKTOP little-endian)" \ |
| - | "od -O" \ |
| + | testing "od -L (little-endian)" \ |
| + | "od -L" \ |
| "\ | |
| - | 0000000 01200601001 37620641101 |
| + | 0000000 -125183517527965183 |
| 0000010 | |
| " \ | |
| "" "$input" | |
| - | SKIP= |
| - | |
| - | # This probably also depends on word width of the arch (what is "long"?) |
| - | $le || SKIP=1 |
| testing "od -l (little-endian)" \ | |
| "od -l" \ | |
| "\ | |