|
@@ -155,6 +155,9 @@ typedef struct config_var_t {
|
|
|
* of arguments. */
|
|
|
typedef int (*validate_fn_t)(void*,void*,void*,int,char**);
|
|
|
|
|
|
+/** Callback to free a configuration object. */
|
|
|
+typedef void (*free_cfg_fn_t)(void*);
|
|
|
+
|
|
|
/** Information on the keys, value types, key-to-struct-member mappings,
|
|
|
* variable descriptions, validation functions, and abbreviations for a
|
|
|
* configuration or storage format. */
|
|
@@ -169,6 +172,7 @@ typedef struct config_format_t {
|
|
|
config_var_t *vars; /**< List of variables we recognize, their default
|
|
|
* values, and where we stick them in the structure. */
|
|
|
validate_fn_t validate_fn; /**< Function to validate config. */
|
|
|
+ free_cfg_fn_t free_fn; /**< Function to free the configuration. */
|
|
|
/** If present, extra is a LINELIST variable for unrecognized
|
|
|
* lines. Otherwise, unrecognized lines are an error. */
|
|
|
config_var_t *extra;
|