shell: fix printing hex when size is larger than 16
This commit is contained in:
parent
2c4e097f64
commit
99ab4bae75
1 changed files with 6 additions and 4 deletions
10
shell.c
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…
Add table
Reference in a new issue