ini.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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/types.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. int faux_pair_compare(const void *first, const void *second);
  14. faux_pair_t *faux_pair_new(const char *name, const char *value);
  15. void faux_pair_free(void *pair);
  16. const char *faux_pair_name(const faux_pair_t *pair);
  17. void faux_pair_set_name(faux_pair_t *pair, const char *name);
  18. const char *faux_pair_value(const faux_pair_t *pair);
  19. void faux_pair_set_value(faux_pair_t *pair, const char *value);
  20. // Ini
  21. faux_ini_t *faux_ini_new(void);
  22. void faux_ini_free(faux_ini_t *ini);
  23. faux_ini_node_t *faux_ini_head(const faux_ini_t *ini);
  24. faux_ini_node_t *faux_ini_tail(const faux_ini_t *ini);
  25. faux_ini_node_t *faux_ini_next(const faux_ini_node_t *node);
  26. faux_ini_node_t *faux_ini_prev(const faux_ini_node_t *node);
  27. faux_pair_t *faux_ini_data(const faux_ini_node_t *node);
  28. faux_pair_t *faux_ini_set(faux_ini_t *ini, const char *name, const char *value);
  29. faux_pair_t *faux_ini_unset(faux_ini_t *ini, const char *name);
  30. int faux_ini_parse_str(faux_ini_t *ini, const char *str);
  31. int faux_ini_parse_file(faux_ini_t *ini, const char *fn);
  32. faux_pair_t *faux_ini_find_pair(const faux_ini_t *ini, const char *name);
  33. const char *faux_ini_find(const faux_ini_t *ini, const char *name);
  34. C_DECL_END
  35. #endif /* _faux_ini_h */