shell: fix printing hex when size is larger than 16

tags/0.1.0
S.J.R. van Schaik 9 years ago
parent 2c4e097f64
commit 99ab4bae75
  1. 10
      shell.c

@ -57,19 +57,21 @@ static void parse_hex(FILE *fp, char *buf, size_t len)
static void print_hex_ascii(FILE *fp, const char *buf, size_t len)
{
size_t i, j;
size_t n, i;
char c;
for (j = 0; j < len; j += 16, buf += 16) {
for (; len; buf += n, len -= n) {
n = min(len, 16);
for (i = 0; i < 16; ++i) {
c = (i < len) ? buf[i] : 0;
c = (i < n) ? buf[i] : 0;
fprintf(fp, "%02x", c);
}
fprintf(fp, " ");
for (i = 0; i < 16; ++i) {
c = (i < len) ? buf[i] : 0;
c = (i < n) ? buf[i] : 0;
fprintf(fp, "%c", isalnum(c) ? c : '.');
}

Loading…
Cancel
Save