diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/xine-utils/utils.c | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/src/xine-utils/utils.c b/src/xine-utils/utils.c index 858a754ae..f79d2ebce 100644 --- a/src/xine-utils/utils.c +++ b/src/xine-utils/utils.c @@ -475,38 +475,39 @@ void xine_usec_sleep(unsigned usec) { /* print a hexdump of length bytes from the data given in buf */ void xine_hexdump (const void *buf_gen, int length) { - int i,j; - unsigned char c; + static const char separator[70] = "---------------------------------------------------------------------"; + const uint8_t *const buf = (const uint8_t*)buf; + int j = 0; /* printf ("Hexdump: %i Bytes\n", length);*/ - for(j=0; j<69; j++) - printf ("-"); - printf ("\n"); + puts(separator); - j=0; while(j<length) { + int i; + const int imax = (j+16 < length) ? (j+16) : length; + printf ("%04X ",j); for (i=j; i<j+16; i++) { if( i<length ) - printf ("%02X ", (unsigned char) buf[i]); + printf ("%02X ", buf[i]); else printf(" "); } - for (i=j;i<(j+16<length?j+16:length);i++) { - c=buf[i]; + + for (i=j; i < imax; i++) { + uint8_t c = buf[i]; if ((c>=32) && (c<127)) - printf ("%c", c); - else - printf ("."); + c = '.'; + + fputc(c, stdout); } j=i; - printf("\n"); + + fputc('\n', stdout); } - for(j=0; j<69; j++) - printf("-"); - printf("\n"); + puts(separator); } |