#include "include/dateformats.h" ttail_datefmt** ttail_date_fmt_init(ttail_options *options) { ttail_datefmt **res; size_t i; i = 1; #ifdef TTAIL_FMT_REGEX i++; #endif res = malloc(sizeof(ttail_datefmt*)*i); if(!res) { perror("Fails to allocate formats"); goto ttail_date_fmt_init_alloc_err; } i--; res[i] = NULL; #ifdef TTAIL_FMT_REGEX res[i] = ttail_fmt_regex_init(options); if(!res[i]) { goto ttail_date_fmt_init_err; } i--; #endif return res; ttail_date_fmt_init_err: i++; while(res[i]!=NULL) { res[i]->cleanup(res[i]); } free(res); ttail_date_fmt_init_alloc_err: return NULL; }