/* Template interpretor */ #include "interpret.h" char* flush(tpl_data dat, auto_t aut) { size_t len; char* str; char* value; size_t vallen; str = malloc(4); len = 0; while (aut != 0) { if (aut->type == 0) { str = realloc(str, len + aut->len); memcpy(str + len, aut->value, aut->len); len += aut->len; } else if (aut->type == 1) { value = tpl_get(dat, aut->value); if (value != 0) { vallen = strlen(value); str = realloc(str, len + vallen); memcpy(str + len, value, vallen); len += vallen; } } aut = aut->next; } str = realloc(str, len + 1); str[len] = 0; return str; }