/*
 * recenteditor_data.c
 *
 * A programmers editor
 *
 * Structures to hold the current file contents.
 *
 * HEADER FILE
 *
 * Author: Dario Rodriguez dario@softhome.net
 * This program is licensed under the terms of GNU GPL v2.1+
 */


typedef struct whatin_t {
        int nlcount;
} whatin_t;

typedef struct rechunk_t {
        whatin_t whatin;
        int useddata;
        unsigned char data[1];
} rechunk_t;

typedef struct redata_t {
        int chunkdatasize;
        int sizechunks;
        rechunk_t **chunks;
        int available;
} redata_t;

redata_t *redata_init(void);
void redata_free(redata_t *redata);

int redata_getsize(redata_t *redata);
int redata_getused(redata_t *redata);
int redata_getavailable(redata_t *redata);

int redata_wipe(redata_t *redata);
int redata_preallocate(redata_t *redata, int size);
int redata_fill_whatin(redata_t *redata, int chunkno);

int redata_load(redata_t *redata, char *filename);
int redata_save(redata_t *redata, char *filename);