Skip to content

Releases: libconfuse/libconfuse

libConfuse v3.3

25 Jun 05:28
Compare
Choose a tag to compare

Changes

  • Support building static library on Windows
  • Support for fmemopen() in Windows UWP applications
  • Support for cfg_getopt(cfg, "sub=name|option"), i.e., get an option from a sub-section, by Peter Rosin
  • Support for CFGF_MODIFIED flag, to detect changes to settings in memory after parsing, by Peter Rosin
  • Support for filtering out settings when printing, by Peter Rosin
  • Support for dynamic key=value sections with no pre-runtime knowledge of setting names, useful for environment variables and similar
  • Updated German translation, by Chris Leick

Fixes

  • Fix loop-forever bug found by Christian Reitter; a .conf file containing only "=", will cause even the simplest parser to loop forever in internal function cfg_getopt_secidx()
  • Issue #113: Fail to build strdup() replacement
  • Issue #118: Fix build on Windows, missing fmemopen() replacement
  • Issue #120: Handle shell and C++ comments with no space separator
  • Issue #125: Drop developer debug msg QSTR: ...
  • Issue #131: Fix CFG_PTR_CB() regression, segfaults when, e.g., cfg_free() is called. Found and fixed by Peter Rosin
  • Issue #135: Revert CFGF_RESET flag if cfg_setmulti() family fail
  • Issue #137: Memory leak in cfg_setopt() for PTR options

libConfuse v3.2.2

19 Aug 08:17
Compare
Choose a tag to compare

This is a security patch release for CVE-2018-14447. The vulnerability affects all releases since v3.1 when the CFGF_COMMENTS functionality was first introduced.

Fixes

  • Issue #109: Out of bounds read in lexer.l:trim_whitespace().

libConfuse v3.2.1

17 Aug 19:47
Compare
Choose a tag to compare

Fixes

  • Issue #101: Bump ABI major number due to incompatible change in struct when adding option annotation/comments in v3.1: 1.1.0 -> 2.0.0

libConfuse v3.2

03 Jun 20:32
Compare
Choose a tag to compare

Bug fix release

Fixes

  • Issue #96: Add Windows/mingw compatible fmemopen() replacement
  • Issue #98: Fix v3.1 regression, segfault on comment-only lines

libConfuse v3.1

24 May 13:01
Compare
Choose a tag to compare

Changes

  • Refactored CFGF_IGNORE_UNKNOWN support, libConfuse now properly ignores any type and sub-section without the need for declaring an __unknown option. When the flag is set all unknown options, including unknown sub-sections with, in turn, unknown options, are now fully ignored
  • Issue #69: New API for creating titled sections at runtime, by Jonas Johansson @jonasj76
  • Issue #92: Support for option annotation/comments. Every option can now have a comment, which is both read and written from/to file. Disabled by default, enable with CFGF_COMMENTS flag in cfg_init()
  • ABI bump: 1.0.0 --> 1.1.0, due to new functionality

Fixes

  • Build unit tests statically for easier debugging

  • Issue #21: Major refactor of lexer to fix memory leaks, cfg_free() now properly releases all memory. By Joachim Nilsson @troglobit

  • Issue #64: Fixed MSVC build errors, by George Koskeridis @Gikoskos

  • Issue #65: SIGSEGV when parsed default values are used with include, by Dmitri Zhabinski

  • Issue #71: Fix syntax in rpm spec file, for CentOS/RHEL7

  • Issue #73: Adjust gettext version requirement to build on CentOS/RHEL7.

    GNU gettext v0.18.2.1 update AM_GNU_GETTEXT() to use AC_PROG_MKDIR_P instead of AM_PROG_MKDIR_P, but v0.18.1.1 is included in Ubuntu 12.04 LTS. Fortunately Ubuntu 14.04 LTS ships v0.18.3.1 and Debian Jessie ships v0.19.3. Unfortunately, CentOS7 and RHEL7 ships v0.18.2.1, so for best compat. level at this point in time we require v0.18.2.

  • Issue #74: Fix typos in documentation, by Luca Ceresoli

  • Issue #79: Add fmemopen() compat for *BSD, including macOS

libConfuse v3.0

03 Mar 01:01
Compare
Choose a tag to compare

This release signifies a major change in libConfuse. On out-of-memory conditions at run time, invalid API input, and some other odd use-cases, libConfuse will no longer assert(). Instead, NULL or CFG_FAIL is returned with an error code for you to handle. For some users this will completely change how your application works, so heads up! The library ABI version has also been stepped due to this.

Special thanks in this release goes out to Frank Hunleth, Peter Rosin and David Grayson for their tireless efforts in helping improve this library!

Note: libConfuse no longer calls setlocale() for LC_MESSAGES and LC_CTYPE. See the documentation for cfg_init() for details.

Changes

  • Support for handling unknown options. The idea is to provide future
    proofing of configuration files, i.e. if a new parameter is added, the
    new config file will not fail if loaded in an older version of your
    program. See the CFGF_IGNORE_UNKNOWN flag in the documenation for
    more information. Idea and implementation by Frank Hunleth.
  • Add public API for removing sections at runtime, by Peter Rosin.
  • Allow cfg_opt_getval() on options that are CFGF_MULTI sections,
    by Peter Rosin.
  • Add cfg_setmulti() and cfg_opt_setmulti(), by Peter Rosin.
  • Add CLI example of how to manage configuration changes at runtime,
    also by Peter Rosin.
  • Support for Travis-CI and Coverity Scan, by Joachim Nilsson.
  • Use autoreconf in autogen.sh instead of calling tools separately.
  • Powershell script for AppVeyor CI to build libConfuse with MSYS2
    by David Grayson.
  • Removed calls to setlocale() intended to localize messages, with
    LC_MESSAGES, and region specific types, with LC_CTYPE. This is
    now the responsibility of the user of the library.
  • Reindent to Linux coding style for a clear and well defined look,
    this to ease future maintenance. Issue #33
  • Add support for CFGF_DEPRECATED and CFGF_DROP option flags. The
    former causes libConfuse to print a deprecated warning message and the
    latter drops the read value on input. Idea and implementation by
    Sebastian Geiger. Issue #24
  • Add HACKING.md document to detail maintenance and release checklists

Fixes

  • Do not assert on API input validation, memory allocation, or similar.
    Instead, return error code to user for further handling. This change
    also includes fixes for a lot of unchecked API return values, e.g.,
    strdup(). Issue #37
  • Protect callers arguments to cfg_setopt(), by Peter Rosin
  • If new value to cfg_setopt() fails parsing, do not lose old value,
    by Peter Rosin.
  • Fixes to update support for older versions of Microsoft Visual Studio
    as well as MSYS2/mingw-w64 by Peter Rosin and David Grayson.
  • Issue #45: cfg_init() does not report error on multiple options with
    the same name. Fixed by Peter Rosin.
  • Fixes for memory leaks, invalid expressions, unused variables and
    missing error handling, all thanks to Coverity Scan

libConfuse v2.8

14 Oct 18:58
Compare
Choose a tag to compare

Changes

  • Support for specifying a searchpath for cfg_parse(), by J.J. Green
  • Restore build of shared library by default, by Nathan Phillip Brink
  • Added German translation, contributed by Chris Leick, Aurelien Jarno,
    and Tux^verdreifelt.
  • Document CFG_SIMPLE_STR for doxygen, by Nathan Phillip Brink
  • Update ISC license to 2007 version, by Joachim Nilsson
  • Write files in a Bourne shell compatible way, by Alvaro G. M
  • Fix mid-string environment variable substitution, by Frank Hunleth

Fixes

  • Various ISO C90 and -ansi fixes by Carlo Marcelo Arenas Belon
  • Fix C++ compiler warnings for const strings, by Craig McQueen
  • Fix make distcheck and out-of-source builds, by Nathan Phillip Brink
  • Fix missing .gitignore files, by Carlo Marcelo Arenas Belon
  • Fix CFG_SIMPLE_INT on 64-bit systems, by Carlo Marcelo Arenas Belon
  • Coding style cleanup by J.J. Green
  • Fix issue #27: searchpath free problems. Fix to new feature
    introduced in this release cycle.
  • Improved support for MSYS2 by David Grayson.