2026-04-17

- canfigger (v0.3.1):
  * Fix Windows build
  + Add canfigger_config_dir(), canfigger_data_dir(), canfigger_path_join()
  * bugfix: Last line without trailing newline was silently dropped
  * bugfix: Memory leak — root list not freed on tmp_line allocation failure
  * bugfix: free_incomplete_node leaked the attributes struct
  * bugfix: add_key_node failure on 2nd+ node corrupted previous node's key
  * bugfix: isspace() called on plain char (undefined behaviour); cast to
    unsigned char
  * Strip UTF-8 BOM so it doesn't corrupt the first key
  * Refactor read_entire_file: single exit point, checked fseek return values
  * Prefix all error messages with "canfigger:"
  * Add tests: bom, no_trailing_newline; fix unicode test missing count/null
    assertions
  + Add canfigger_version.h (generated at build time) exposing
    CANFIGGER_VERSION_MAJOR, CANFIGGER_VERSION_MINOR, CANFIGGER_VERSION_PATCH
  + Add CANFIGGER_CHECK_VERSION(maj, min) macro to canfigger.h for
    compile-time version checks

2024-02-29

  * release v0.3.0

Changes since 2024-02-21

  * canfigger_free() replaced with canfigger_free_current_key_node_advance()
  * canfigger_free_attr() removed
  * use 'canfigger_free_current_attr_str_advance()' instead of
    'list->attr_node = list->attr_node->next'
  * In meson.build, rename dep_canfigger->canfigger_dep
  * lines starting with '[' are ignored

2024-02-21

  * Use dynamic memory allocation for keys, values, and attributes.

2022-01-06

  * implement support for multiple attributes (breaking change)
  * release v0.2.0

2021-12-27

  * release v0.1.2

2021-12-26

  * Code maintenance/refactor
  * Minor adjustments to meson.build so that canfigger can be used as a
  meson subproject

2021-06-24

  * The docs now install when 'ninja install' is run
  * canfigger v0.1.1 released

2021-06-09

  * If doing an early return due to error, the file descriptor now gets
  closed properly.

2021-06-06

  * v0.1.0 released (initial release)
