sbase

suckless unix tools
git clone git://git.suckless.org/sbase
Log | Files | Refs | README | LICENSE

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:
Mod.c | 13+++++++------
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;