src/core/config/parser.c
/**
 * Given an array of array value items we need to parse their values or resolve
 * the variables into values.
 *
 * We just take the value item and complete the same process as if we had found
 * a top level value string starting with "parser_parse_value"
 */
Given an array of array value items we need to parse their values or resolve
the variables into values.

We just take the value item and complete the same process as if we had found
a top level value string starting with "parser_parse_value"
Given an array of array value items we need to parse their values or resolve the variables into values . We just take the value item and complete the same process as if we had found a top level value string starting with " parser_parse_value "
static struct config_value *parser_resolve_array_values(struct parser *parser, char **value_items,
                                                        size_t value_items_length)
{
        struct config_value *config_value = config_value_create_array(value_items_length);
        if (config_value == NULL) {
                return NULL;
        }
        for (size_t i = 0; i < value_items_length; ++i) {
                struct config_value *item = parser_parse_value(parser, value_items[i]);
                if (item == NULL) {
                        for (size_t j = i; j < value_items_length; ++j) {
                                free(value_items[j]);
                        }
                        config_value_destroy(config_value);
                        return NULL;
                }
                config_value->data.array->values[i] = item;
        }
        return config_value;
}
static struct config_value * parser_resolve_array_values ( struct parser * parser , char * * value_items , size_t value_items_length ) { struct config_value * config_value = config_value_create_array ( value_items_length ) ; if ( config_value == NULL ) { return NULL ; } for ( size_t i = 0 ; i < value_items_length ; ++ i ) { struct config_value * item = parser_parse_value ( parser , value_items [ i ] ) ; if ( item == NULL ) { for ( size_t j = i ; j < value_items_length ; ++ j ) { free ( value_items [ j ] ) ; } config_value_destroy ( config_value ) ; return NULL ; } config_value -> data . array -> values [ i ] = item ; } return config_value ; }
Given an array of array value items we need to parse their values or resolve
 the variables into values.
Given an array of array value items we need to parse their values or resolve the variables into values .
// Resolve and insert config_values into the array