81 #define econf_setValue(kf, group, key, value) (( \
83 int: econf_setIntValue, \
84 long: econf_setInt64Value, \
85 unsigned int: econf_setUIntValue, \
86 unsigned long: econf_setUInt64Value, \
87 float: econf_setFloatValue, \
88 double: econf_setDoubleValue, \
89 char*: econf_setStringValue, void*: econf_setStringValue)) \
90 (kf, group, key, value))
98 #define econf_free(value) (( \
100 econf_file*: econf_freeFile , \
101 char**: econf_freeArray)) \
133 const char *delim,
const char *comment);
195 const char *usr_conf_dir,
196 const char *etc_conf_dir,
197 const char *project_name,
198 const char *config_suffix,
200 const char *comment);
220 const char *usr_conf_dir,
221 const char *etc_conf_dir,
222 const char *project_name,
223 const char *config_suffix,
225 const char *comment);
264 const char *file_name);
econf_err econf_newIniFile(econf_file **result)
Create a new econf_file object in IniFile format.
struct econf_file econf_file
econf_err econf_setUInt64Value(econf_file *kf, const char *group, const char *key, uint64_t value)
Set uint64 value for given group/key.
econf_err econf_getBoolValueDef(econf_file *kf, const char *group, const char *key, bool *result, bool def)
Evaluating bool value for given group/key.
econf_err econf_setDoubleValue(econf_file *kf, const char *group, const char *key, double value)
Set double value for given group/key.
econf_err econf_mergeFiles(econf_file **merged_file, econf_file *usr_file, econf_file *etc_file)
Merge the contents of two key_files objects.
econf_err econf_setInt64Value(econf_file *kf, const char *group, const char *key, int64_t value)
Set int64 value for given group/key.
econf_err econf_getStringValueDef(econf_file *kf, const char *group, const char *key, char **result, char *def)
Evaluating string value for given group/key.
econf_err
libeconf error codes
@ ECONF_NOMEM
Out of memory.
@ ECONF_NOGROUP
Group not found.
@ ECONF_TEXT_AFTER_SECTION
Text after section.
@ ECONF_PARSE_ERROR
General syntax error in input file.
@ ECONF_EMPTY_SECTION_NAME
Empty section name.
@ ECONF_WRITEERROR
Error creating or writing to a file.
@ ECONF_MISSING_BRACKET
Missing closing section bracket.
@ ECONF_NOKEY
Key not found.
@ ECONF_MISSING_DELIMITER
Missing delimiter.
@ ECONF_NOFILE
Config file not found.
@ ECONF_ERROR
Generic Error.
@ ECONF_EMPTYKEY
Key has empty value.
@ ECONF_SUCCESS
General purpose success code.
econf_err econf_setBoolValue(econf_file *kf, const char *group, const char *key, const char *value)
Set bool value for given group/key.
econf_err econf_getUInt64Value(econf_file *kf, const char *group, const char *key, uint64_t *result)
Evaluating uint64 value for given group/key.
econf_err econf_setUIntValue(econf_file *kf, const char *group, const char *key, uint32_t value)
Set uint32 value for given group/key.
econf_err econf_readDirsHistory(econf_file ***key_files, size_t *size, const char *usr_conf_dir, const char *etc_conf_dir, const char *project_name, const char *config_suffix, const char *delim, const char *comment)
Evaluating key/values for every given configuration files in two different directories (normally in /...
econf_err econf_getFloatValue(econf_file *kf, const char *group, const char *key, float *result)
Evaluating float value for given group/key.
econf_err econf_writeFile(econf_file *key_file, const char *save_to_dir, const char *file_name)
Write content of a econf_file struct to specified location.
char * econf_getPath(econf_file *kf)
Evaluating path name.
econf_err econf_getBoolValue(econf_file *kf, const char *group, const char *key, bool *result)
Evaluating bool value for given group/key.
econf_err econf_readDirs(econf_file **key_file, const char *usr_conf_dir, const char *etc_conf_dir, const char *project_name, const char *config_suffix, const char *delim, const char *comment)
Evaluating key/values of a given configuration by reading and merging all needed/available files in t...
econf_err econf_setStringValue(econf_file *kf, const char *group, const char *key, const char *value)
Set string value for given group/key.
econf_err econf_getInt64Value(econf_file *kf, const char *group, const char *key, int64_t *result)
Evaluating int64 value for given group/key.
econf_err econf_getUInt64ValueDef(econf_file *kf, const char *group, const char *key, uint64_t *result, uint64_t def)
Evaluating uint64 value for given group/key.
econf_err econf_setFloatValue(econf_file *kf, const char *group, const char *key, float value)
Set float value for given group/key.
econf_err econf_newKeyFile(econf_file **result, char delimiter, char comment)
Create a new econf_file object.
econf_err econf_getDoubleValueDef(econf_file *kf, const char *group, const char *key, double *result, double def)
Evaluating double value for given group/key.
econf_err econf_setIntValue(econf_file *kf, const char *group, const char *key, int32_t value)
Set int32 value for given group/key.
econf_err econf_readFile(econf_file **result, const char *file_name, const char *delim, const char *comment)
Process the file of the given file_name and save its contents into key_file object.
econf_err econf_getGroups(econf_file *kf, size_t *length, char ***groups)
Evaluating all group entries.
econf_err econf_getUIntValueDef(econf_file *kf, const char *group, const char *key, uint32_t *result, uint32_t def)
Evaluating uint32 value for given group/key.
const char * econf_errString(const econf_err error)
Convert an econf_err type to a string.
econf_err econf_getFloatValueDef(econf_file *kf, const char *group, const char *key, float *result, float def)
Evaluating float value for given group/key.
econf_err econf_getStringValue(econf_file *kf, const char *group, const char *key, char **result)
Evaluating string value for given group/key.
econf_err econf_getIntValue(econf_file *kf, const char *group, const char *key, int32_t *result)
Evaluating int32 value for given group/key.
econf_err econf_getDoubleValue(econf_file *kf, const char *group, const char *key, double *result)
Evaluating double value for given group/key.
void econf_freeArray(char **array)
Free an array of type char** created by econf_getGroups() or econf_getKeys().
void econf_errLocation(char **filename, uint64_t *line_nr)
Info about where the error has happened.
econf_err econf_getInt64ValueDef(econf_file *kf, const char *group, const char *key, int64_t *result, int64_t def)
Evaluating int64 value for given group/key.
void econf_freeFile(econf_file *key_file)
Free memory allocated by e.g.
econf_err econf_getIntValueDef(econf_file *kf, const char *group, const char *key, int32_t *result, int32_t def)
Evaluating int32 value for given group/key.
econf_err econf_getUIntValue(econf_file *kf, const char *group, const char *key, uint32_t *result)
Evaluating uint32 value for given group/key.
econf_err econf_getKeys(econf_file *kf, const char *group, size_t *length, char ***keys)
Evaluating all keys.