static yoml_t *parse(const char *fn, const char *s) { yaml_parser_t parser; yoml_t *doc; yaml_parser_initialize(&parser); yaml_parser_set_input_string(&parser, (yaml_char_t*)s, strlen(s)); doc = yoml_parse_document(&parser, NULL, NULL, fn); yaml_parser_delete(&parser); return doc; }
yoml_t *load_config(const char *fn) { FILE *fp; yaml_parser_t parser; yoml_t *yoml; if ((fp = fopen(fn, "rb")) == NULL) { fprintf(stderr, "could not open configuration file:%s:%s\n", fn, strerror(errno)); return NULL; } yaml_parser_initialize(&parser); yaml_parser_set_input_file(&parser, fp); yoml = yoml_parse_document(&parser, NULL); if (yoml == NULL) fprintf(stderr, "failed to parse configuration file:%s:%s\n", fn, parser.problem); yaml_parser_delete(&parser); return yoml; }