/*------------------------------------------------------------------------------ expansion_data.c - Operations on an expansion data record Version 1.0 2014-12-16 Brian B. McGuinness ------------------------------------------------------------------------------*/ #include #include "expansion_data.h" /*------------------------------------------------------------------------------ delete_expansion_data - Delete an expansion data record ------------------------------------------------------------------------------*/ void delete_expansion_data (expansion_data *record) { if (record != NULL) { if (record->expansions != NULL) delete_string_list (record->expansions); free (record); } } /*------------------------------------------------------------------------------ new_expansion_data - Create a new expansion data record start = Initial index in the expansion list where the current component starts The string must be deallocated with delete_expansion_data() when you are finished with it. ------------------------------------------------------------------------------*/ expansion_data *new_expansion_data (int start) { expansion_data *result = (expansion_data *) malloc (sizeof (expansion_data)); if (result != NULL) { result->part_starts_at = start; result->expansions = new_string_list (); if (result->expansions == NULL) { free (result); result = NULL; } } return result; }