/********************************************************************** Set values to zeros; should have free'd/closed everything before this if appropriate. ***********************************************************************/ static void init_zeros(struct inputfile *inf) { assert(inf != NULL); inf->magic = INF_MAGIC; inf->filename = NULL; inf->fp = NULL; inf->datafn = NULL; inf->included_from = NULL; inf->line_num = inf->cur_line_pos = 0; inf->at_eof = inf->in_string = FALSE; inf->string_start_line = 0; astr_init(&inf->cur_line); astr_init(&inf->copy_line); astr_init(&inf->token); astr_init(&inf->partial); }
struct astr *astr_alloc(size_t len) { struct astrstr *str; str = amalloc(sizeof(struct astrstr) + len + 1); if (str == NULL) { return NULL; } astr_init(str, 0, str->data_start, __astr_destroystr); return str; }
struct astr *astr_create(size_t len, char *data) { struct astr *str; str = amalloc(sizeof(struct astr)); if (str == NULL) { return NULL; } astr_init(str, len, data, __astr_destroy); return str; }