X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fparser-conf.h;h=efeb4f3d241c6a994db0fc225b1cc27b24455d6b;hp=09015d1734e8df4fedc629a6bf0cbc16f8855557;hb=bd06734362bb727b09b943688d9b69aa0a84590d;hpb=5472ed16df5642aedc124a1b49a35d99da98cc37 diff --git a/discover/parser-conf.h b/discover/parser-conf.h index 09015d1..efeb4f3 100644 --- a/discover/parser-conf.h +++ b/discover/parser-conf.h @@ -33,22 +33,38 @@ struct conf_context { 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); +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