Scratch the above patch, I forgot to credit prez for the report. Please use the attached patch!
Thanks Michael
>From f3eef8e9c4820b7764a229fa40d714f52fc676ee Mon Sep 17 00:00:00 2001 From: Quentin Rameau <quinq@fifth.space> Date: Wed, 4 Mar 2020 17:02:15 +0100 Subject: [PATCH] od: set -tx default byte number to integer size Thanks to prez <prez@national.shitposting.agency> for the report and base patch! --- od.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/od.c b/od.c index 0b1c5c6..9ff8ff2 100644 --- a/od.c +++ b/od.c @@ -212,7 +212,7 @@ main(int argc, char *argv[]) { int fd; struct type *t; - int ret = 0, len; + int ret = 0, len, defbytes; char *s; big_endian = (*(uint16_t *)"\0\xff" == 0xff); @@ -260,6 +260,7 @@ main(int argc, char *argv[]) case 'o': case 'u': case 'x': + defbytes = 0; /* todo: allow multiple digits */ if (*(s+1) > '0' && *(s+1) <= '9') { len = *(s+1) - '0'; @@ -271,17 +272,17 @@ main(int argc, char *argv[]) case 'S': len = sizeof(short); break; + default: + defbytes = 1; case 'I': len = sizeof(int); break; case 'L': len = sizeof(long); break; - default: - len = sizeof(int); } } - addtype(*s++, len); + addtype(defbytes ? *s : *s++, len); break; default: usage(); -- 2.25.1