aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/cmd_dumpx.c
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/cmd_dumpx.c')
-rw-r--r--cmd/cmd_dumpx.c55
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