ini.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /** @file ini.h
  2. * @brief Public interface to work with ini files and strings.
  3. */
  4. #ifndef _faux_ini_h
  5. #define _faux_ini_h
  6. #include <faux/faux.h>
  7. #include <faux/list.h>
  8. typedef struct faux_pair_s faux_pair_t;
  9. typedef struct faux_ini_s faux_ini_t;
  10. typedef faux_list_node_t faux_ini_node_t;
  11. C_DECL_BEGIN
  12. // Pair
  13. const char *faux_pair_name(const faux_pair_t *pair);
  14. const char *faux_pair_value(const faux_pair_t *pair);
  15. // Ini
  16. faux_ini_t *faux_ini_new(void);
  17. void faux_ini_free(faux_ini_t *ini);
  18. const faux_pair_t *faux_ini_set(faux_ini_t *ini, const char *name, const char *value);
  19. void faux_ini_unset(faux_ini_t *ini, const char *name);
  20. bool_t faux_ini_is_empty(const faux_ini_t *ini);
  21. const faux_pair_t *faux_ini_find_pair(const faux_ini_t *ini, const char *name);
  22. const char *faux_ini_find(const faux_ini_t *ini, const char *name);
  23. faux_ini_node_t *faux_ini_iter(const faux_ini_t *ini);
  24. const faux_pair_t *faux_ini_each(faux_ini_node_t **iter);
  25. bool_t faux_ini_parse_str(faux_ini_t *ini, const char *str);
  26. bool_t faux_ini_parse_file(faux_ini_t *ini, const char *fn);
  27. char *faux_ini_write_str(const faux_ini_t *ini);
  28. bool_t faux_ini_write_file(const faux_ini_t *ini, const char *fn);
  29. faux_ini_t *faux_ini_extract_subini(const faux_ini_t *ini, const char *prefix);
  30. C_DECL_END
  31. #endif /* _faux_ini_h */