diff options
Diffstat (limited to 'cmd/cmd_dumpx.c')
-rw-r--r-- | cmd/cmd_dumpx.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/cmd/cmd_dumpx.c b/cmd/cmd_dumpx.c index 3e6cdf1..ecca20c 100644 --- a/cmd/cmd_dumpx.c +++ b/cmd/cmd_dumpx.c @@ -8,26 +8,28 @@ #include "libcmd/cmd_parse.h" extern file_t *g_file; -extern buf_t *g_buf; +extern Buf *g_buf; extern int g_flags; int c_dumpx( cmd_arg_t *arg ) { int i,j; - if ( g_buf->buf == NULL) + if ( g_buf->isempty() ) { printf("Buffer to print empty\n"); return -1; } - for (i=0; i<g_buf->size; i+=16) + for (i=0; i<g_buf->size(); i+=16) { for (j=i; j<i+16; j++) { - if ( j<g_buf->size ) + if ( j<g_buf->size() ) { - printf("%02x ",(unsigned char)g_buf->buf[j]); + char c; + g_buf->getc(j,&c); + printf("%02x ",(unsigned char)c); } else { printf(" "); @@ -36,11 +38,14 @@ int c_dumpx( cmd_arg_t *arg ) for (j=i; j<i+16; j++) { - if ( j<g_buf->size ) //wrong place move to cycle? + if ( j<g_buf->size() ) //wrong place move to cycle? { - if ( isprint(g_buf->buf[j]) ) + char c; + g_buf->getc(j,&c); + if ( isprint(c) ) { - printf("%c",(unsigned char)g_buf->buf[j]); + + printf("%c",(unsigned char)c); } else { printf("\e[7m.\e[0m"); |