---
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