commit f83c468b558d87ca27e99d7d8559eec3281a33c6
parent 1ff2a54e8fbabfa3d6a7f49f06e63f039292efba
Author: Michael Forney <mforney@mforney.org>
Date: Sun, 25 Feb 2018 12:56:36 -0800
od: Don't modify bytes in the line for the 'a' type
Subsequent types should still print the full 8-bit value.
Diffstat:
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/od.c b/od.c
@@ -36,11 +36,12 @@ printaddress(off_t addr)
}
static void
-printchunk(unsigned char *s, unsigned char format, size_t len)
+printchunk(const unsigned char *s, unsigned char format, size_t len)
{
long long res, basefac;
size_t i;
char fmt[] = " %#*ll#";
+ unsigned char c;
const char *namedict[] = {
"nul", "soh", "stx", "etx", "eot", "enq", "ack",
@@ -58,11 +59,11 @@ printchunk(unsigned char *s, unsigned char format, size_t len)
switch (format) {
case 'a':
- *s &= ~128; /* clear high bit as required by standard */
- if (*s < LEN(namedict) || *s == 127) {
- printf(" %3s", (*s == 127) ? "del" : namedict[*s]);
+ c = *s & ~128; /* clear high bit as required by standard */
+ if (c < LEN(namedict) || c == 127) {
+ printf(" %3s", (c == 127) ? "del" : namedict[c]);
} else {
- printf(" %3c", *s);
+ printf(" %3c", c);
}
break;
case 'c':
@@ -91,7 +92,7 @@ printchunk(unsigned char *s, unsigned char format, size_t len)
}
static void
-printline(unsigned char *line, size_t len, off_t addr)
+printline(const unsigned char *line, size_t len, off_t addr)
{
struct type *t = NULL;
size_t i;