#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <errno.h>
#include <stdarg.h>

#include "lib.h"
#include "fstr.h"
#define DMID 14
#include "debug.h"
#ifndef FALSE
#define FALSE  0
#endif
#ifndef TRUE
#define TRUE (!FALSE)
#endif



Fstr *fstr_new(int sz)
{
	Fstr *f = calloc(1,sizeof(Fstr));
	f->data = calloc(1,sz+1);
	f->total = sz;
	return	f;
}
void fstr_add(Fstr *f, char *s, int len)
{
	int rest = f->total-f->len;
	if (len>rest) len = rest;
	ncpy_real(f->data + f->len, s, len, __FILE__, __LINE__, f->total);
	f->len += len;
	f->data[f->len] = 0;	
}
void fstr_clear(Fstr *f)
{
	f->len = 0;
}
char *fstr_s(Fstr *f)
{
	return f->data;
}
int fstr_len(Fstr *f)
{
	return f->len;
}
void fstr_free(Fstr *f)
{
	free(f->data); f->data = NULL;
	free(f);
}