diff options
Diffstat (limited to 'cmd/cmd_dumpx.c')
-rw-r--r-- | cmd/cmd_dumpx.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/cmd/cmd_dumpx.c b/cmd/cmd_dumpx.c new file mode 100644 index 0000000..d6228fd --- /dev/null +++ b/cmd/cmd_dumpx.c @@ -0,0 +1,55 @@ +#include <ctype.h> +#include <string.h> + +#include "buf.h" +#include "core.h" + +#include "libcmd/cmd.h" +#include "libcmd/cmd_parse.h" + +extern file_t *g_file; +extern buf_t *g_buf; +extern int g_flags; + +int c_dumpx( cmd_arg_t *arg ) +{ + int i,j; + + if ( g_buf->buf == NULL) + { + printf("Buffer to print empty\n"); + return -1; + } + + for (i=0; i<g_buf->size; i+=16) + { + for (j=i; j<i+16; j++) + { + if ( j<g_buf->size ) + { + printf("%02x ",(unsigned char)g_buf->buf[j]); + } else + { + printf(" "); + } + } + + for (j=i; j<i+16; j++) + { + if ( j<g_buf->size ) //wrong place move to cycle? + { + if ( isprint(g_buf->buf[j]) ) + { + printf("%c",(unsigned char)g_buf->buf[j]); + } else + { + printf("\e[7m.\e[0m"); + } + } + } + printf("\n"); + } + printf("\n"); + + return 0; +}
\ No newline at end of file |