struct conf_context {
void *parser_info;
struct discover_context *dc;
- char *buf;
struct conf_global_option *global_options;
- const char *const *conf_files;
+ char *(*get_pair)(struct conf_context *conf, char *str, char **name_out,
+ char **value_out, char terminator);
void (*process_pair)(struct conf_context *conf, const char *name,
char *value);
void (*finish)(struct conf_context *conf);
};
-int conf_parse(struct conf_context *conf);
-char *conf_get_param_pair(char *str, char **name_out, char **value_out,
- char terminator);
+void conf_parse_buf(struct conf_context *conf, char *buf, int len);
+char *conf_get_pair(struct conf_context *conf, char *str, char **name_out,
+ char **value_out, char delimiter, char terminator);
void conf_init_global_options(struct conf_context *conf);
const char *conf_get_global_option(struct conf_context *conf,
const char *name);
int conf_set_global_option(struct conf_context *conf, const char *name,
const char *value);
+static inline char *conf_get_pair_equal(struct conf_context *conf, char *str,
+ char **name_out, char **value_out, char terminator)
+{
+ return conf_get_pair(conf, str, name_out, value_out, '=', terminator);
+}
+
+static inline char *conf_get_pair_space(struct conf_context *conf, char *str,
+ char **name_out, char **value_out, char terminator)
+{
+ return conf_get_pair(conf, str, name_out, value_out, ' ', terminator);
+}
+
/* utility routines */
int conf_param_in_list(const char *const *list, const char *param);
char *conf_strip_str(char *s);
+char *conf_replace_char(char *s, char from, char to);
#endif