* @v name Name within this parent
* @ret settings Settings block, or NULL
*/
-static struct settings * autovivify_child_settings ( struct settings *parent,
- const char *name ) {
+struct settings * autovivify_child_settings ( struct settings *parent,
+ const char *name ) {
struct {
struct autovivified_settings autovivified;
char name[ strlen ( name ) + 1 /* NUL */ ];
* @ret settings Settings block, or NULL
*/
static struct settings *
-parse_settings_name ( const char *name,
- struct settings * ( * get_child ) ( struct settings *,
- const char * ) ) {
+parse_settings_name ( const char *name, get_child_settings_t get_child ) {
struct settings *settings = &settings_root;
char name_copy[ strlen ( name ) + 1 ];
char *subname;
* Note that on success, this function will have modified the original
* setting @c name.
*/
-static int
-parse_setting_name ( char *name,
- struct settings * ( * get_child )
- ( struct settings *settings,
- const char *name ),
- struct settings **settings, struct setting *setting ) {
+int parse_setting_name ( char *name, get_child_settings_t get_child,
+ struct settings **settings, struct setting *setting ) {
char *settings_name;
char *setting_name;
char *type_name;
struct list_head list;
};
+/** A child settings block locator function */
+typedef struct settings * ( *get_child_settings_t ) ( struct settings *settings,
+ const char *name );
extern struct settings_operations generic_settings_operations;
extern int generic_settings_store ( struct settings *settings,
struct setting *setting,
extern struct settings * find_child_settings ( struct settings *parent,
const char *name );
+extern struct settings * autovivify_child_settings ( struct settings *parent,
+ const char *name );
extern const char * settings_name ( struct settings *settings );
extern struct settings * find_settings ( const char *name );
extern struct setting * find_setting ( const char *name );
-
+extern int parse_setting_name ( char *name, get_child_settings_t get_child,
+ struct settings **settings,
+ struct setting *setting );
extern int setting_name ( struct settings *settings, struct setting *setting,
char *buf, size_t len );
extern int fetchf_setting ( struct settings *settings, struct setting *setting,