Lines Matching refs:parser

118 static char *get_dict_str(const struct CFG_PARSER *parser,  in get_dict_str()  argument
125 if ((strval = dict_lookup(parser->name, name)) == 0) in get_dict_str()
131 parser->name, len, min, name, strval); in get_dict_str()
134 parser->name, len, max, name, strval); in get_dict_str()
140 static char *get_main_str(const struct CFG_PARSER *parser, in get_main_str() argument
148 vstring_sprintf(buf, "%s_%s", parser->name, name); in get_main_str()
154 static int get_dict_int(const struct CFG_PARSER *parser, in get_dict_int() argument
162 if ((strval = dict_lookup(parser->name, name)) != 0) { in get_dict_int()
167 parser->name, name, strval); in get_dict_int()
172 parser->name, name, intval, min); in get_dict_int()
175 parser->name, name, intval, max); in get_dict_int()
181 static int get_main_int(const struct CFG_PARSER *parser, in get_main_int() argument
188 vstring_sprintf(buf, "%s_%s", parser->name, name); in get_main_int()
194 static int get_dict_bool(const struct CFG_PARSER *parser, in get_dict_bool() argument
200 if ((strval = dict_lookup(parser->name, name)) != 0) { in get_dict_bool()
207 parser->name, name, strval); in get_dict_bool()
216 static int get_main_bool(const struct CFG_PARSER *parser, in get_main_bool() argument
223 vstring_sprintf(buf, "%s_%s", parser->name, name); in get_main_bool()
232 CFG_PARSER *parser; in cfg_parser_alloc() local
237 parser = (CFG_PARSER *) mymalloc(sizeof(*parser)); in cfg_parser_alloc()
238 parser->name = mystrdup(pname); in cfg_parser_alloc()
239 if (*parser->name == '/' || *parser->name == '.') { in cfg_parser_alloc()
240 if (dict_load_file_xt(parser->name, parser->name) == 0) { in cfg_parser_alloc()
241 myfree(parser->name); in cfg_parser_alloc()
242 myfree((void *) parser); in cfg_parser_alloc()
245 parser->get_str = get_dict_str; in cfg_parser_alloc()
246 parser->get_int = get_dict_int; in cfg_parser_alloc()
247 parser->get_bool = get_dict_bool; in cfg_parser_alloc()
248 dict = dict_handle(parser->name); in cfg_parser_alloc()
250 parser->get_str = get_main_str; in cfg_parser_alloc()
251 parser->get_int = get_main_int; in cfg_parser_alloc()
252 parser->get_bool = get_main_bool; in cfg_parser_alloc()
257 parser->owner = dict->owner; in cfg_parser_alloc()
258 return (parser); in cfg_parser_alloc()
263 char *cfg_get_str(const CFG_PARSER *parser, const char *name, in cfg_get_str() argument
269 strval = parser->get_str(parser, name, (defval ? defval : ""), min, max); in cfg_get_str()
276 msg_info("%s: %s: %s = %s", myname, parser->name, name, in cfg_get_str()
283 int cfg_get_int(const CFG_PARSER *parser, const char *name, int defval, in cfg_get_int() argument
289 intval = parser->get_int(parser, name, defval, min, max); in cfg_get_int()
291 msg_info("%s: %s: %s = %d", myname, parser->name, name, intval); in cfg_get_int()
297 int cfg_get_bool(const CFG_PARSER *parser, const char *name, int defval) in cfg_get_bool() argument
302 intval = parser->get_bool(parser, name, defval); in cfg_get_bool()
304 msg_info("%s: %s: %s = %s", myname, parser->name, name, in cfg_get_bool()
311 CFG_PARSER *cfg_parser_free(CFG_PARSER *parser) in cfg_parser_free() argument
315 if (parser->name == 0 || *parser->name == 0) in cfg_parser_free()
317 if (*parser->name == '/' || *parser->name == '.') { in cfg_parser_free()
318 if (dict_handle(parser->name)) in cfg_parser_free()
319 dict_unregister(parser->name); in cfg_parser_free()
321 myfree(parser->name); in cfg_parser_free()
322 myfree((void *) parser); in cfg_parser_free()