Version 0.7.9 * Comments can include comment character tag multiple time. * Fixed static library declaration in meason * Fixed versioning in cmake Version 0.7.8 * Fix memory access if there are a comment character inside a comment. Version 0.7.7 * Additional fix for parsing empty config files (bsc#1234405). Version 0.7.6 * Do not parse files with name "." and ".." (bsc#1234405). * Fixed memory leak in econftool. Version 0.7.5 * Fixed memory leaks. * Removed PATH_MAX define. * Add ROOT_PREFIX as option to replace TESTSDIR hack * Using valgrind for checking memory leaks. * Implement econf_*freep functions for automatic cleanup * Cleanup *free functions Version 0.7.4 * Fixed memory leaks. Version 0.7.3 * Fixed: econf_readDirs crashes if one of the paths is NULL (#211) * Handle groups correctly which do not have any key entry. * Added links to man page. E.g. "man econf_readConfig" is working now. Version 0.7.2 * Do not check errno while float conversion. This is a false alarm for S390 and PPC. Version 0.7.1 * Improved error handling while parsing values with the wrong format. Added new return value ECONF_VALUE_CONVERSION_ERROR. * Setting parsing options via econf_file struct. see econf_newKeyFile_with_options. These options will be used by econf_readConfig and econf_readConfigWithCallback. Following options are supported: JOIN_SAME_ENTRIES (default 0) Parsed entries with the same name will not be replaces but will be joined to one entry. PYTHON_STYLE (default 0) E.G. Identations will be handled like multiline entries. PARSING_DIRS (default /usr/etc/:/run:/etc) List of directories from which the configuration files have to be parsed. The list is a string, divides by ":". The last entry has the highest priority. E.g.: "PARSING_DIRS=/usr/etc/:/run:/etc" CONFIG_DIRS (default ) List of directory structures (with order) which describes the directories in which the files have to be parsed. The list is a string, divides by ":". The last entry has the highest priority. E.g. with the given list: "CONFIG_DIRS=.conf.d:.d" files in following directories will be parsed: "/.conf.d/" "/.d/" "//" * CAUTION: From now on every econf_file element MUST be intialized if econf_readConfig and econf_readConfigWithCallback is used. Either with NULL or: econf_file *key_file = NULL; if (error = econf_newKeyFile_with_options(&key_file, "PYTHON_STYLE=1")) { fprintf (stderr, "ERROR: couldn't create new key file: %s\n", econf_errString(error)); return 1; } error = econf_readConfig (&key_file, "foo", "/usr/lib", "example", "conf", "=", "#"); Version 0.6.3 * fixed build with musl libc on ppc64le * creating static libeconf.a Version 0.6.2 * fixed RESOURCE_LEAK (CWE-772) and UNINIT (CWE-457) Version 0.6.1 * Reading lines which are greater than BUFSIZ. Version 0.6.0 * Supporting Linux Userspace API (UAPI) Group chapter "Configuration Files Specification". See: https://uapi-group.org/specifications/specs/configuration_files_specification/ Version 0.5.3 * Added bindings for python3 and C# * Supporting Linux Userspace API (UAPI) Group chapter "Configuration Files Specification". See: https://uapi-group.org/specifications/specs/configuration_files_specification/ Version 0.5.2 * Fixed build for aarch64 and gcc13. * Making the output verbose when a test fails. * Fixed a stack-buffer-overflow vulnerability in "econf_writeFile" function. * Fixed a stack-buffer-overflow vulnerability in "read_file" function. Version 0.5.1 * Reading files in /usr/_vendor_/_example_._suffix_.d/* regardless there is a /etc/_example_._suffix_ file. Version 0.5.0 * API calls econf_read*WithCallback supporting a general (void *) argument for user defined data with which the callback function is called. * Tagged following functions deprecated: econf_requireOwner, econf_requireGroup, econf_requirePermissions, econf_followSymlinks, econf_reset_security_settings Use one of the econf_read*WithCallback functions instead. Version 0.4.9 * new API calls: ** econf_readFileWithCallback Has the same functionality like econf_readFile. The user can additionally define a callback in order to check the parsed file. ** econf_readDirsWithCallback Has the same functionality like econf_readDirs. The user can additionally define a callback in order e.g. to check all parsed file. ** econf_readDirsHistoryWithCallback Has the same functionality like econf_readDirsHistory. The user can additionally define a callback in order e.g. to check all parsed file. Version 0.4.8 * Parsing files which are containing keys only. All delimiters are allowed now : "", " =", " ", "=". But the user should use "" in order to be distinct. * /usr/etc/shells.d/ will not be parsed if /etc/shells.d/ is defined too. Version 0.4.7 * econftool: Adapted compile options regarding LTO (Link Time Optimization). Version 0.4.6 * econftool: ** Parsing error: Reporting file and line nr. ** --delimeters=spaces Taking all kind of spaces for delimiter * libeconf: Fixed bnc#1198165: Parsing files correctly which have space characters AND none space characters as delimiters. Version 0.4.5 * econftool: ** New call "syntax" for checking the configuration files only. Returns an error string with line number if an error occurs. ** New options "--comment" and "--delimeters" ** Parsing one file only if needed. Version 0.4.4 * Fixed i586 build Version 0.4.3 * Reading numbers with different bases (e.g. oktal) (bsc#1193632). Version 0.4.2 * CMake fixes regarding document installation. * Fixed different issues while writing string values to file. * Writing comments to file too. * Fixed memory leaks. * Fixed crash while merging values. Version 0.4.1 * CMake fixes regarding installation of econftool and man pages. Version 0.4.0 * Man pages libeconf.3 and econftool.8. * Handling multiline strings. * Added libeconf_ext which returns more information like line_nr, comments, path of the configuration file,... * Econftool, an command line interface for handling configuration files. * Generating HTML API documentation with doxygen. * Improving error handling and semantic file check. * Joining entries with the same key to one single entry if env variable ECONF_JOIN_SAME_ENTRIES has been set. * new API call: econf_readDirsHistory (showing ALL locations) * new API call: econf_getPath (absolute path of the configuration file) Version 0.3.8 * Convert the build to include CMake as an option, remove autotools Version 0.3.7 * Fix issues identified with i586 build thanks to the move to meson Version 0.3.6 * Add C++ compatibility and Add support for Meson Version 0.3.5 * Initial Haiku Port * Bugfix: helpers.c - Check for empty value (NULL pointer) before calling strdup. Version 0.3.4 * Fix parsing of quoted strings, and values starting with delimiters * Fix buffer overflow in econf_readDirs Version 0.3.3 * Reset *key_file to NULL after free Version 0.3.2 * Bugfix for merging empty configuration files Version 0.3.1 * Bugfix for writing files (Set delimiter in readFile) Version 0.3.0 * New parser * Add econf_get*ValueDef functions Version 0.2.0 * Reading of files is stable now Version 0.1.0 * Initial release