29#include <mstdlib/base/m_list_str.h>
30#include <mstdlib/base/m_types.h>
31#include <mstdlib/base/m_fs.h>
M_fs_error_t
Definition: m_fs.h:154
M_ini_t * M_ini_create(M_bool ignore_whitespace) M_MALLOC
M_bool M_ini_kv_rename(M_ini_t *ini, const char *key, const char *new_key)
M_bool M_ini_kv_get(const M_ini_t *ini, const char *key, size_t idx, const char **val)
M_fs_error_t M_ini_write_file(M_ini_t *ini, const char *path, const M_ini_settings_t *info)
M_bool M_ini_kv_remove(M_ini_t *ini, const char *key)
void M_ini_settings_destroy(M_ini_settings_t *info) M_FREE(1)
void M_ini_settings_set_quote_char(M_ini_settings_t *info, unsigned char val)
void M_ini_settings_writer_set_multivals_handling(M_ini_settings_t *info, M_ini_multivals_t val)
M_list_str_t * M_ini_kv_keys(const M_ini_t *ini) M_MALLOC
unsigned char M_ini_settings_get_comment_char(const M_ini_settings_t *info)
size_t M_ini_kv_len(const M_ini_t *ini, const char *key)
void M_ini_settings_writer_set_line_ending(M_ini_settings_t *info, const char *val)
M_bool M_ini_kv_remove_val_at(M_ini_t *ini, const char *key, size_t idx)
M_ini_t * M_ini_read(const char *s, const M_ini_settings_t *info, M_bool ignore_whitespace, size_t *err_line) M_MALLOC
void M_ini_settings_merger_set_conflict_flags(M_ini_settings_t *info, M_uint32 val)
M_list_str_t * M_ini_kv_get_vals(const M_ini_t *ini, const char *key)
M_bool M_ini_kv_set(M_ini_t *ini, const char *key, const char *val)
M_ini_merge_conflict_t
Definition: m_ini.h:157
M_ini_dupkvs_t M_ini_settings_reader_get_dupkvs_handling(const M_ini_settings_t *info)
M_ini_t * M_ini_duplicate(const M_ini_t *ini)
void M_ini_settings_set_escape_char(M_ini_settings_t *info, unsigned char val)
M_list_str_t * M_ini_kv_sections(const M_ini_t *ini) M_MALLOC
M_bool M_ini_kv_add_key(M_ini_t *ini, const char *key)
unsigned char M_ini_settings_get_kv_delim_char(const M_ini_settings_t *info)
M_uint32 M_ini_settings_get_padding(const M_ini_settings_t *info)
M_uint32 M_ini_settings_merger_get_conflict_flags(const M_ini_settings_t *info)
void M_ini_settings_set_element_delim_char(M_ini_settings_t *info, unsigned char val)
void M_ini_settings_merger_set_resolver(M_ini_settings_t *info, M_ini_merge_resolver_t val)
unsigned char M_ini_settings_get_quote_char(const M_ini_settings_t *info)
void M_ini_settings_reader_set_dupkvs_handling(M_ini_settings_t *info, M_ini_dupkvs_t val)
unsigned char M_ini_settings_get_element_delim_char(const M_ini_settings_t *info)
void M_ini_destroy(M_ini_t *ini) M_FREE(1)
M_ini_t * M_ini_read_file(const char *path, const M_ini_settings_t *info, M_bool ignore_whitespace, size_t *err_line, size_t max_read) M_MALLOC
char * M_ini_full_key(const char *section, const char *key) M_MALLOC
const char * M_ini_settings_writer_get_line_ending(const M_ini_settings_t *info)
M_ini_merge_resolver_t M_ini_settings_merger_get_resolver(const M_ini_settings_t *info)
struct M_ini_settings M_ini_settings_t
Definition: m_ini.h:95
M_bool M_ini_kv_remove_vals(M_ini_t *ini, const char *key)
M_ini_padding_t
Definition: m_ini.h:129
M_bool(* M_ini_merge_resolver_t)(const char *key, const char *val_cur, const char *val_new)
Definition: m_ini.h:112
M_bool M_ini_kv_insert(M_ini_t *ini, const char *key, const char *val)
unsigned char M_ini_settings_get_escape_char(const M_ini_settings_t *info)
M_ini_dupkvs_t
Definition: m_ini.h:118
void M_ini_settings_set_kv_delim_char(M_ini_settings_t *info, unsigned char val)
M_ini_settings_t * M_ini_settings_create(void) M_MALLOC
M_ini_multivals_t M_ini_settings_writer_get_multivals_handling(const M_ini_settings_t *info)
const char * M_ini_kv_get_direct(const M_ini_t *ini, const char *key, size_t idx)
char * M_ini_write(M_ini_t *ini, const M_ini_settings_t *info)
M_ini_multivals_t
Definition: m_ini.h:139
struct M_ini M_ini_t
Definition: m_ini.h:92
M_ini_t * M_ini_merge(const M_ini_t *cur_ini, const M_ini_t *new_ini, const M_ini_t *orig_ini, const M_ini_settings_t *info)
void M_ini_settings_set_comment_char(M_ini_settings_t *info, unsigned char val)
M_bool M_ini_kv_has_key(const M_ini_t *ini, const char *key)
void M_ini_settings_set_padding(M_ini_settings_t *info, M_uint32 val)
void M_ini_split_key(const char *s, char **section, char **key)
@ M_INI_MERGE_NEW_CHANGED_USE_CUR
Definition: m_ini.h:163
@ M_INI_MERGE_NEW_REMOVED_KEEP
Definition: m_ini.h:161
@ M_INI_MERGE_CALLBACK_FUNC
Definition: m_ini.h:158
@ M_INI_MERGE_MULTI_NEW_REMOVED_KEEP
Definition: m_ini.h:166
@ M_INI_PADDING_AFTER_KV_VAL
Definition: m_ini.h:133
@ M_INI_PADDING_AFTER_KV_DELIM
Definition: m_ini.h:132
@ M_INI_PADDING_NONE
Definition: m_ini.h:130
@ M_INI_PADDING_AFTER_COMMENT_CHAR
Definition: m_ini.h:134
@ M_INI_PADDING_BEFORE_KV_DELIM
Definition: m_ini.h:131
@ M_INI_DUPKVS_REMOVE
Definition: m_ini.h:122
@ M_INI_DUPKVS_COLLECT
Definition: m_ini.h:123
@ M_INI_DUPKVS_REMOVE_PREV
Definition: m_ini.h:120
@ M_INI_DUPKVS_COMMENT_PREV
Definition: m_ini.h:119
@ M_INI_DUPKVS_COMMENT
Definition: m_ini.h:121
@ M_INI_MULTIVALS_USE_FIRST
Definition: m_ini.h:141
@ M_INI_MULTIVALS_USE_LAST
Definition: m_ini.h:140
@ M_INI_MULTIVALS_KEEP_EXISTING
Definition: m_ini.h:142
@ M_INI_MULTIVALS_MAINTAIN_ORDER
Definition: m_ini.h:144
struct M_list_str M_list_str_t
Definition: m_list_str.h:80