diff --git a/sys/od/od.c b/sys/od/od.c index 21cd1ade8e317ddcd22ebafb59c6a881582a81ee..87098c8e4ae9fd8c8ef32900cb9a8f88e8c52355 100644 --- a/sys/od/od.c +++ b/sys/od/od.c @@ -184,7 +184,7 @@ static void _print_date(void *data, size_t offset, char *format, uint8_t length, switch (length) { case 1: if (flags & OD_FLAGS_BYTES_CHAR) { - switch (((char *)data)[offset]) { + switch (((signed char *)data)[offset]) { case '\0': printf(" \\0"); return; @@ -218,11 +218,11 @@ static void _print_date(void *data, size_t offset, char *format, uint8_t length, return; default: - if (((char *)data)[offset] < 0) { + if (((signed char *)data)[offset] < 0) { printf(" %03o", ((unsigned char *)data)[offset]); return; } - else if (((char *)data)[offset] < 32) { + else if (((signed char *)data)[offset] < 32) { printf(" %03o", ((char *)data)[offset]); return; }