Skip to content

Releases: ccgargantua/ini

v1.1.1

27 Dec 02:27
0fe79a4

Choose a tag to compare

  • Added a build script build.sh
  • Converted comments to JavaDoc style.

v1.1.0

20 Nov 20:37
a223a79

Choose a tag to compare

Additions:

  • INI_DUPLICATE_KEYS_OVERWRITE flag

Changes:

  • Default behavior has been changed to where duplicate keys found in files provided to ini_read_file* functions now break the parsing loop and report an error. With the INI_DUPLICATE_KEYS_OVERWRITE flag, duplicate keys will overwrite the previously held value in the KV pair. With INI_CONTINUE_PAST_ERROR passed, then duplicate keys are just ignored.

Fixes:

  • Memory leaks in fuzzing tests and query tests.

v1.0.0

19 Nov 20:00
9c0f111

Choose a tag to compare

ini v1.0.0 Release Notes

Features

  • Full INI parsing support, including sections, key/value pairs, quoted values, and whitespace handling.
  • Typed query API: string, bool, signed/unsigned integers, hex, and floating-point retrieval.
  • Error reporting system with message, offending line, and offset via INIError_t.
  • File I/O helpers for reading and writing: ini_read_file, ini_write_file, and their FILE* counterparts.
  • Stack-based data model via ini_init_data for environments where heap usage is restricted.
  • Heap-based model with dynamic allocation and growth via ini_create_data and ini_free_data.
  • Custom allocator support through ini_set_allocator, ini_set_free, and ini_set_reallocator.
  • Parsing flags: INI_CONTINUE_PAST_ERROR and INI_ALLOW_DUPLICATE_SECTIONS.

Improvements and Behavior

  • Dynamic expansion of section and pair storage with fallback behavior when allocation fails.
  • Writing functions automatically quote values containing consecutive spaces.
  • Robust validation for section names, keys, and values.

Limitations

  • Duplicate sections are only supported when explicitly enabled by flags.
  • Parsing raw text buffers (non-file input) is not included in this release.
  • Parsing is constrained by INI_MAX_LINE_SIZE and INI_MAX_STRING_SIZE unless redefined.

Licensing

  • MIT License included in source.