diff --git a/coreutils/od_bloaty.c b/coreutils/od_bloaty.c index f13bdfc11..fa0196ca4 100644 --- a/coreutils/od_bloaty.c +++ b/coreutils/od_bloaty.c @@ -665,7 +665,7 @@ decode_one_format(const char *s_orig, const char *s, struct tspec *tspec) fmt = FLOATING_POINT; ++s; p = strchr(FDL, *s); - if (!p) { + if (!p || *p == '\0') { size = sizeof(double); if (isdigit(s[0])) { size = bb_strtou(s, &end, 0); @@ -686,6 +686,7 @@ decode_one_format(const char *s_orig, const char *s, struct tspec *tspec) }; size = FDL_sizeof[p - FDL]; + s++; /* skip F/D/L */ } size_spec = fp_type_size[size]; diff --git a/testsuite/od.tests b/testsuite/od.tests index 7a9da3e97..0880e0d2f 100755 --- a/testsuite/od.tests +++ b/testsuite/od.tests @@ -16,6 +16,16 @@ testing "od -b" \ "" "HELLO" SKIP= +optional DESKTOP +testing "od -f" \ + "od -f" \ +"\ +0000000 0.0000000e+00 0.0000000e+00 +0000010 +" \ + "" "\x00\x00\x00\x00\x00\x00\x00\x00" +SKIP= + optional DESKTOP LONG_OPTS testing "od -b --traditional" \ "od -b --traditional" \