NEWS
====


## 1.8.0

* 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


## 1.7.0

* Default format `INI_UNIXLIKE_FORMAT` has been created


## 1.6.1

* Function `ini_array_match()` has been created


## 1.6.0

* Functions `ini_array_shift()`, `ini_array_break()`, `ini_array_release()` have
  been created
* 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
* Redundant function † `ini_get_lazy_bool()` has been removed


## 1.5.2

* Option `IniFormat::section_paths` has been added to the `IniFormat` bitfield


## 1.5.0

* Added `IniFormat::preserve_empty_quotes` option to the `IniFormat` bitfield
* Function `ini_string_parse()` has been created
* Default value of `INI_GLOBAL_LOWERCASE_MODE` has been set to `FALSE`
* 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 will always be cleaned of empty quotes in
  formats that support quotes (relevant for space collapsing)

Due to the many renamings this release is largely incompatible with previous
versions. However it is possible to reach full backward compatibility with
version 1.4.2 by using the following aliases:

    #define hash hash_marker
    #define semicolon semicolon_marker
    #define multiline_entries multiline_nodes
    #define ini_collapse_array ini_array_collapse
    #define ini_split_array ini_array_split
    #define ini_set_implicit_value ini_global_set_implicit_value
    #define INI_INSENSITIVE_LOWERCASE INI_GLOBAL_LOWERCASE_MODE
    #define IniFormatId IniFormatNum
    #define ini_format_get_id ini_fton
    #define ini_format_set_to_id(DEST, SRC) (*(DEST) = ini_ntof(SRC))
    #define INI_PARSE_COMMENT INI_DISABLED_OR_COMMENT
    #define INI_SHOW_COMMENT INI_ONLY_COMMENT
    #define INI_FORGET_COMMENT INI_IGNORE
    #define INI_NORMAL_CHARACTER INI_IS_NOT_A_MARKER
    #define INI_EVERYTHING_MULTILINE INI_MULTILINE_EVERYWHERE
    #define INI_ACTIVE_AND_DISABLED_MULTILINE INI_BUT_COMMENTS
    #define INI_ACTIVE_MULTILINE INI_BUT_COMMENTS
    #define CONFINI_EIINTR CONFINI_IINTR
    #define CONFINI_EFEINTR CONFINI_FEINTR


## 1.4.1

* Created string comparison functions `ini_string_match_ss()`,
  `ini_string_match_si()` and `ini_string_match_ii()`
* `stdint.h` header has been included in `confini.h`
* `stdio.h` header has been removed from `confini.h`


## 1.4.0

* `stdio.h` header has been included in `confini.h`
* Function `load_ini_file()` now uses a `FILE` structure instead of a path -- in
  order to use a path (a string), the shortcut `load_ini_path()` has been
  created


## 1.3-1

* † `ini_collapse_array()` has been created
* `index` and `format` parameters have been added to callback function in
  `ini_array_foreach()` and † `ini_split_array()`


## 1.1-1

* Added support for `INI_ANY_SPACE` (`0`) as delimiter in
  `ini_array_get_length()`, `ini_array_foreach()` and † `ini_split_array()`
* `IniFormat::no_spaces_in_names` has been created

