summaryrefslogtreecommitdiff
path: root/cmd/cmd_writes.c
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/cmd_writes.c')
-rw-r--r--cmd/cmd_writes.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/cmd/cmd_writes.c b/cmd/cmd_writes.c
new file mode 100644
index 0000000..1ddc95a
--- /dev/null
+++ b/cmd/cmd_writes.c
@@ -0,0 +1,46 @@
+#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;
+
+//white spaces should be supported
+int c_writes( cmd_arg_t *arg )
+{
+ int argc = arg->argc;
+ char **argv = arg->argv;
+ int fret = 0;
+
+ if ( argc != 1)
+ {
+ printf("Need one argument mister\n");
+ return -1;
+ }
+
+ if (((g_buf == NULL) || (g_file == NULL)) || (g_buf->buf == NULL))
+ {
+ printf("Buffer or file not initialised");
+ return -1;
+ }
+
+ if ( strlen(argv[0]) <= g_buf->size )
+ {
+ memcpy( g_buf->buf, argv[0], strlen(argv[0]) );
+ fret = file_write_blk( g_file, g_buf->buf );
+ if ( fret < 0 )
+ {
+ printf("Couldnt write block to file\n");
+ return -1;
+ }
+ } else
+ {
+ printf("Input bigger then buffer buf %d input %zu\n", g_buf->size, strlen(argv[0]));
+ return -1;
+ }
+
+ return 0;
+}