{
const unsigned char *p = rv->bytes.p, *l = p + rv->bytes.sz;
size_t off, sz = rv->bytes.sz;
- unsigned i, n;
+ unsigned i, n, w;
int wd;
if (!rv->text.sz) { dump_empty("bytes", style, gops, go); return; }
return;
}
- if (sz > 16) gprintf(gops, go, "\n\t");
+ if (sz <= 16) w = sz;
+ else { gprintf(gops, go, "\n\t"); w = 16; }
off = 0; wd = hex_width(sz);
while (p < l) {
if (l - p < 16) n = l - p;
else n = 16;
- for (i = 0; i < n; i++) {
+ for (i = 0; i < w; i++) {
if (i < n) gprintf(gops, go, "%02x", p[i]);
else gprintf(gops, go, " ");
- if (i < n - 1 && i%4 == 3) gprintf(gops, go, " ");
+ if (i < w - 1 && i%4 == 3) gprintf(gops, go, " ");
}
gprintf(gops, go, " ; ");
if (sz > 16) gprintf(gops, go, "[%0*lx] ", wd, (unsigned long)off);
void tvec_allocbuffer(union tvec_regval *rv)
{
- unsigned char *p; size_t n;
+ unsigned char *p;
size_t m = rv->buf.m, a = rv->buf.a, off;
if (rv->buf.p) free(rv->buf.p - rv->buf.off);