aboutsummaryrefslogblamecommitdiffstats
path: root/cmd/cmd_writes.c
blob: 0b555be0a5c02d24f6379a4bdc9ae573556c7e20 (plain) (tree)
1
2
3
4
5
6
7
8
9

                   






                             
                  














                                                     
                                                  




                                                         
                                               
         







                                                                        






                                                                
                                                                                                      




                          





                                                                       
#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 *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)))
	{
		printf("Buffer or file not initialised");
		return -1;
	}

	if ( strlen(argv[0]) <= g_buf->size() )
	{
		//memcpy( g_buf->buf, argv[0], strlen(argv[0]) );
		//check if can save all string in dat buffer
		g_buf->set(argv[0],strlen(argv[0]));

		char *buf_ptr;
		int sz;
		g_buf->get_ptr(&buf_ptr,&sz);
		fret = file_write_blk( g_file, (uint8_t *)buf_ptr, sz );
		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;
}

int h_writes( cmd_arg_t *arg )
{
	printf("[STRING] - data written to buffer and file as string");
	return 0;
}