|Tags||ini library unix configuration configuration-file ini-parser ini-reader ini-config conf shared-library config configuration-management gnu|
1.10.119 Sep 2019 17:09 minor bugfix: Changes: * Code review (`strip_ini_cache()`) a small bug concerning `CR` + `LF` line breaks has been fixed
1.10.002 Aug 2019 18:25 minor feature: Changes: * Function `strip_ini_cache()` has been created see issue #9 (https://github.com/madmurphy/libconfini/issues/9) most of the code of `load_ini_file()` has now been moved to `strip_ini_cache()` * Code review (`load_ini_file()` and `load_ini_path()`) * Documentation * Created new examples (see `examples/topics/strip_ini_cache.c`)
1.9.225 Apr 2019 14:43 documentation: * Documentation * Created new examples (see examples/miscellanea/colon_as_delimiter.c)
1.9.129 Mar 2019 06:25 major bugfix: * Private function further_cuts(): fixed bug concerning blocks that had been marked as INI_IGNORE wrongly re-marked as comments after 1.9.0 (due to this bug error CONFINI_EOOR was thrown) * Private function load_ini_file(): fixed bug related to IniFormat::disabled_after_space stopping to work properly after 1.9.0 * Documentation
1.9.026 Mar 2019 03:16 minor feature: * Improved performance of load_ini_file() (ambiguous disabled entries that have been already tested with a negative result before invoking f_init() will be internally marked as comments for not being tested twice an example of such ambiguous disabled entries is # foo #bar ) * Added --multiversion option to the autogen.sh script for future major version changes (see INSTALL) * Added --with-pkgconfigdir=DIR option to the configure script * Private function dqultrim_s() has been created * Private macros _LIBCONFINI_IS_COM_MARKER_() and _LIBCONFINI_SC_INT_MARKER_ have been created * Private macro _LIBCONFINI_INLINE_MARKER_ has been renamed to _LIBCONFINI_IC_INT_MARKER_ * Code review (load_ini_file(), private functions uncomment() and further_cuts()) * Documentation * Examples
1.8.618 Mar 2019 02:19 minor feature: * Code review (load_ini_file(), private functions get_type_as_active() and further_cuts()) * Documentation * Examples
1.8.511 Mar 2019 01:29 documentation: * Documentation
1.8.408 Jan 2019 03:45 minor feature: * autogen.sh: replaced #!/bin/sh with #!/bin/bash see issue #7
1.8.319 Nov 2018 23:14 minor feature: * Code review (ini_string_match_ss(), ini_string_match_si(), ini_array_foreach(), ini_array_split()) * Documentation * Examples
1.8.211 Nov 2018 23:20 minor feature: * Code review (private function further_cuts()) * Optimization flag -O2 seems to be working better than -O3 on Unix systems: conditionally use -O2 or -O3 depending on the host * Use libtool's -avoid-version only when compiling under native Microsoft Windows environment * Added --clean option to the autogen.sh script * Updated Autotools macros * Documentation * Examples
1.8.105 Nov 2018 06:25 minor feature: * Code review (load_ini_file(), ini_array_foreach(), ini_array_split(), private functions is_some_space(), ltrim_s(), ltrim_h(), ltrim_hh(), rtrim_s() and rtrim_h()) * Updated Autotools macros * Documentation * Examples
1.8.029 Oct 2018 00:41 minor feature: * Created `typedef`s of callback functions (types `IniStatsHandler` and `IniDispHandler`, both required by `load_ini_file()` and `load_ini_path()`, type `IniStrHandler`, required by `ini_array_split()`, and type `IniSubstrHandler`, required by `ini_array_foreach()`) * Internal macro `_LIBCONFINI_INIFORMAT_AS_()` has been renamed to `INIFORMAT_TABLE_AS()` and marked as public please note that the arguments that are passed to the user-given callback are now different * Introduced **libtool** versioning system for the compiled binary (versioning begins with current version 1.8.0, represented as `0:0:0`); note that **libtool** versioning system does not affect the versioning of the project currently in use, but constitutes only a means for the linker to keep track of incompatibilities between different releases of the library * Improved support for building **libconfini** under Microsoft Windows (created Windows resource file `src/winres.rc`; conditionally added option `-avoid-version` to `LDFLAGS` in order to skip foreign **libtool** versioning system under Microsoft Windows; created batch script `mgwmake.bat` for compiling **libconfini** under Microsoft Windows without **Autotools**) * Code review (`ini_fton()` and `ini_ntof()`) * Updated **Autotools** macros * Documentation * Created new examples (see `examples/topics/ini_array_foreach.c`, `examples/topics/ini_array_split.c` and `examples/miscellanea/stats_only.c`)
1.7.319 Oct 2018 04:45 minor feature: * Code review (`load_ini_file()`, private function `get_type_as_active()`) * Made sure that the `CLOSE_SECTION` character is never followed by anything else than empty spaces * Documentation
1.7.212 Oct 2018 12:45 minor feature: * Code review (load_ini_path() -- see issue #6 concerning file access under Microsoft Windows) * Documentation -- see issues #5 and #6
1.7.108 Oct 2018 22:13 minor feature: * Added `--disable-doc` and `disable-examples` options to the `configure` script * Added `--noconfigure` and `--help` options to the `autogen.sh` script
1.7.006 Oct 2018 13:45 minor feature: * Default format `INI_UNIXLIKE_FORMAT` has been created * `IniFormat::no_disabled_after_space` has been renamed to `IniFormat::disabled_after_space` (the field has opposite meaning now, please invert your booleans accordingly) * Moved `#include ` from `confini.c` to `confini.h` * Documentation * Examples
1.6.329 Sep 2018 22:04 minor feature: - Constant CONFINI_EFEOOR has been renamed to CONFINI_EOOR - Code review - Documentation
1.6.223 May 2018 03:15 minor feature: Function ini_array_match() has been created. Documentation. Examples.
1.6.119 May 2018 03:15 minor feature: Functions ini_array_shift(), ini_array_break(), ini_array_release() have been created. Made sure that escapable characters cannot be used as delimiters in formats that support escape sequences. Boolean pair OFF/ON has been added to the list of supported INI booleans. Boolean pair 0/1 has been removed from the list of supported INI booleans. Public macro INIFORMAT_HAS_NO_ESC has been created. Redundant function ini_get_lazy_bool() has been removed. The buffer pointed by IniDispatch::append_to is now passed as const. Code review (ini_string_match_ss(), ini_string_match_si(), ini_string_match_ii(), ini_string_parse(), ini_array_get_length(), ini_array_foreach(), ini_array_split(), private functions uncomment() and further_cuts()). Private functions get_metachar_pos() and collapse_empty_quotes() have been created. Private functions sanitize_key_name() and get_delimiter_pos() have been renamed to collapse_everything() and getn_metachar_pos() (the latter now requires one more argument). Documentation. Examples.
1.6.015 May 2018 03:15 minor feature: Added IniFormat::section_paths option to the IniFormat bitfield. Created enum IniSectionPaths. Made sure that implicit keys containing only empty quotes are ignored in formats that support quotes. Private function ultrim_h() has been renamed to qultrim_h() and rewritten. Code review (ini_array_foreach(), ini_array_split(), ini_string_parse(), private functions get_delimiter_pos() and get_type_as_active()).
1.5.203 May 2018 03:15 minor feature: Changed fields order and sizes in the IniFormat bitfield. Changed internal values of INI_KEY, INI_SECTION, INI_DISABLED_KEY andINI_DISABLED_SECTION (see enum IniNodeType). Moved example INI files to examples/ini_files. Documentation.
1.5.129 Apr 2018 03:15 minor feature: Added IniFormat::preserve_empty_quotes option to the IniFormat bitfield. IniFormat::hash, IniFormat::semicolon and IniFormat::multiline_entries have been renamed to IniFormat::hash_marker, IniFormat::semicolon_marker and IniFormat::multiline_nodes. Function ini_string_parse() has been created. Function ini_collapse_array() has been renamed to ini_array_collapse(). Function ini_split_array() has been renamed to ini_array_split(). Function ini_set_implicit_value() has been renamed toini_global_set_implicit_value(). Function confini_global_set_lowercase_mode() has been renamed toini_global_set_lowercase_mode(). Global variable INI_INSENSITIVE_LOWERCASE has been renamed toINI_GLOBAL_LOWERCASE_MODE. Default value of INI_GLOBAL_LOWERCASE_MODE has been set to FALSE. Data type IniFormatId has been renamed to IniFormatNum. ini_format_get_id() has been renamed to ini_fton(). ini_format_set_to_id() has been renamed to ini_ntof() -- now accepts only one argument and has a return value. Constants INI_PARSE_COMMENT, INI_SHOW_COMMENT, INI_FORGET_COMMENT andINI_NORMAL_CHARACTER have been renamed to INI_DISABLED_OR_COMMENT,INI_ONLY_COMMENT, INI_IGNORE and INI_IS_NOT_A_MARKER. Constants INI_EVERYTHING_MULTILINE, INI_ACTIVE_AND_DISABLED_MULTILINE andINI_ACTIVE_MULTILINE have been renamed to INI_MULTILINE_EVERYWHERE,INI_BUT_COMMENTS, and INI_BUT_DISABLED_AND_COMMENTS. Constants CONFINI_EIINTR and CONFINI_EFEINTR have been renamed toCONFINI_IINTR and CONFINI_FEINTR. enum tags ConfiniErrorNo and IniComments have been renamed toConfiniInterruptNo and IniCommentMarker. Private function sanitize_section_name() has been renamed tosanitize_section_path(). Created private function sanitize_key_name(). Code review (ini_array_get_length(), ini_string_match_si(),ini_string_match_ii(), private functions sanitize_section_path() andcollapse_spaces()). Made sure that sections appended to root as pseudo-subsections will be dispatched always without the leading dot. Made sure that key and section names
1.5.018 Apr 2018 19:35 minor feature: Changes: * Added `IniFormat::preserve_empty_quotes` option to the `IniFormat` bitfield * `IniFormat::hash`, `IniFormat::semicolon` and `IniFormat::multiline_entries` have been renamed to `IniFormat::hash_marker`, `IniFormat::semicolon_marker` and `IniFormat::multiline_nodes` * Function `ini_string_parse()` has been created * Function `ini_collapse_array()` has been renamed to `ini_array_collapse()` * Function `ini_split_array()` has been renamed to `ini_array_split()` * Function `ini_set_implicit_value()` has been renamed to `ini_global_set_implicit_value()` * Function `confini_global_set_lowercase_mode()` has been renamed to `ini_global_set_lowercase_mode()` * Global variable `INI_INSENSITIVE_LOWERCASE` has been renamed to `INI_GLOBAL_LOWERCASE_MODE` * Default value of `INI_GLOBAL_LOWERCASE_MODE` has been set to `FALSE` * Data type `IniFormatId` has been renamed to `IniFormatNum` * `ini_format_get_id()` has been renamed to `ini_fton()` * `ini_format_set_to_id()` has been renamed to `ini_ntof()` -- now accepts only one argument and has a return value * Constants `INI_PARSE_COMMENT`, `INI_SHOW_COMMENT`, `INI_FORGET_COMMENT` and `INI_NORMAL_CHARACTER` have been renamed to `INI_DISABLED_OR_COMMENT`, `INI_ONLY_COMMENT`, `INI_IGNORE` and `INI_IS_NOT_A_MARKER` * Constants `INI_EVERYTHING_MULTILINE`, `INI_ACTIVE_AND_DISABLED_MULTILINE` and `INI_ACTIVE_MULTILINE` have been renamed to `INI_MULTILINE_EVERYWHERE`, `INI_BUT_COMMENTS`, and `INI_BUT_DISABLED_AND_COMMENTS` * Constants `CONFINI_EIINTR` and `CONFINI_EFEINTR` have been renamed to `CONFINI_IINTR` and `CONFINI_FEINTR` * `enum` tags `ConfiniErrorNo` and `IniComments` have been renamed to `ConfiniInterruptNo` and `IniCommentMarker` * Private function `sanitize_section_name()` has been renamed to `sanitize_section_path()` * Created private function `sanitize_key_name()` * Code review (`ini_array_get_length()`, `ini_string_match_si()`, `ini_string_match_ii()`, private functions `sanitize_sectio
ManageYou can also help out here by:
← Update project
or flagging this entry for moderator attention.