return TRUE;
}
+void *settings_defaults_dup(pool_t pool, const struct setting_parser_info *info)
+{
+ void *dup = p_malloc(pool, info->struct_size);
+ memcpy(dup, info->defaults, info->struct_size);
+ memcpy(PTR_OFFSET(dup, info->pool_offset1 - 1), &pool, sizeof(pool));
+ return dup;
+}
+
const char *settings_section_escape(const char *name)
{
#define CHAR_NEED_ESCAPE(c) \
const void *set1, const void *set2,
const char *const *except_fields);
+/* Allocate a new instance of a settings struct filled with the default
+ settings. */
+void *settings_defaults_dup(pool_t pool, const struct setting_parser_info *info);
+
/* Return section name escaped */
const char *settings_section_escape(const char *name);
const char *settings_section_unescape(const char *name);