md__2home_...2ChangeLog(3)
๐ md__2home_2runner_2work_2libconfuse_2libconfuse_2ChangeLog ๐
from the Library Functions Manual, bestie ๐ซถ
okay so this is the manual page for md__2home_2runner_2work_2libconfuse_2libconfuse_2ChangeLog, and it's literally a whole change log. All relevant changes to the project are documented in this file. No skips, we're reading every crumb. ๐
โจ NAME โจ
md__2home_2runner_2work_2libconfuse_2libconfuse_2ChangeLog โ Change Log
All relevant changes to the project are documented in this file.
v3.4 - 2026-08-16
okay so v3.4 is highkey stacked, bestie. let's go. ๐ฅ
Changes
- Support for
CFGT_RAWSECโ capture a section body verbatim, by Alexey Volokitin ๐ - Support for an
include()function within a section, enabled with theCFGF_USE_INCLUDE_FUNCTIONflag, by Alexey Volokitin - Support binary radix (
0b...) forCFG_INT, issue #145 - Add support for fixed-width and unsigned integer types,
CFG_INT8/16/32/64andCFG_UINT8/16/32/64, alongside the platform-widthCFG_INT, issue #11 - Update doxygen documentation and sync with modern doxygen
- Automatic large file support (LFS), by Mike Frysinger
cfg_parse_buf()now keeps a caller-setcfg->filenamefor file:line diagnostics, defaulting to[buf]only when unset, the same waycfg_parse_fp()handlesFILE- Optional JSON-style
[ ]list syntax, enable withCFGF_JSON_LISTSflag tocfg_init();cfg_print()then emits[ ]as well. The default{ }syntax is unchanged - Georgian translation, by Temuri Doghonadze
- Updated Swedish, French, and German translations, Joachim Wiberg
Fixes
- Issue #147: fix the bundled
fmemopen()replacement for systems without a native one (e.g. older macOS/BSD), so the write-then-read round-trip works; diagnosed by sevan - Issue #150: comments are now accepted anywhere between tokens, e.g. inside lists and inline C-style, not only before an option name
- Issue #152: fail to build with gettext 0.20, by heitbaum
- Issue #153: German translation update
- Issue #158:
cfg_addtsec()returns the existing section when the title already exists, matching the documented behavior - Issue #163: heap overflow in
cfg_tilde_expand(), found by Han Zheng - Issue #172: document the working MSYS2/MINGW64 Windows build; the old
windows/mingwinstructions were obsolete and failed to link - Issue #179:
cfg_addlist()now preserves default list values when appending, by Yi Chen - Issue #180:
isspace()argument fix, could crash the lexer, by Thomas Klausner - Issue #182: guard against stack exhaustion from deeply nested sections, by Yi Chen
- Issue #187: null dereference on an empty comment (e.g.
#) withCFGF_COMMENTSenabled, found and fixed by Benjamin Ali - Fix null termination when expanding environment variables, by Igor Ponomarenko
- Only apply search path logic to relative pathnames, absolute paths are no longer altered, by Rasmus Villemoes
- Remove spurious
'no such option'errors forKEYSTRVALsections - Fix configure failure with autoconf 2.73, backslash continuations in the
AC_CONFIG_FILESlist are no longer accepted
v3.3 - 2020-06-25
v3.3 said โletโs make it work everywhereโ and honestly? ate. ๐
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_MODIFIEDflag, 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=valuesections 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
.conffile containing only'=', will cause even the simplest parser to loop forever in internal functioncfg_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_RESETflag ifcfg_setmulti()family fail - Issue #137: Memory leak in
cfg_setopt()for PTR options
v3.2.2 - 2018-08-19
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().
v3.2.1 - 2017-08-17
ABI bump moment, no cap.
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
v3.2 - 2017-06-03
quick fixes, we love to see it. ๐ฆ
Fixes
- Issue #96: Add Windows/mingw compatible
fmemopen()replacement - Issue #98: Fix v3.1 regression, segfault on comment-only lines
v3.1 - 2017-05-24
big refactor energy, bestie. โจ
Changes
- Refactored
CFGF_IGNORE_UNKNOWNsupport, libConfuse now properly ignores any type and sub-section without the need for declaring an__unknownoption. 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_COMMENTSflag incfg_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 useAC_PROG_MKDIR_Pinstead ofAM_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
v3.0 - 2016-03-03
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 callssetlocale()forLC_MESSAGESandLC_CTYPE. See the documentation forcfg_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_UNKNOWNflag in the documentation 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 areCFGF_MULTIsections, by Peter Rosin. - Add
cfg_setmulti()andcfg_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
autoreconfinautogen.shinstead 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, withLC_MESSAGES, and region specific types, withLC_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_DEPRECATEDandCFGF_DROPoption 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.mddocument 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
v2.8 - 2015-10-14
throwback to 2015, still iconic. ๐
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_STRfor 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 distcheckand out-of-source builds, by Nathan Phillip Brink - Fix missing
.gitignorefiles, by Carlo Marcelo Arenas Belon - Fix
CFG_SIMPLE_INTon 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.
๐ธ v2.7 - 2010-02-20 ๐ธ
โจ Changes โจ
cfg_setopt()is now out in the public API โ suggested by Daniel Pocock. ๐- Doxygen docs for
cfg_setopt()added, by Daniel Pocock. ๐ - Don't fail on compiler warnings โ
-Werrorremoved, by Martin Hedenfalk. ๐ซโ ๏ธ - Avoid aborting processing of the configuration buffer after returning from include processing. By Carlo Marcelo Arenas Belon. ๐โก๏ธ
- Building of examples is now optional. ๐๏ธ
๐ ๏ธ Fixes ๐ ๏ธ
- Fixed user defined error callbacks, by Martin Hedenfalk. ๐ง
- Included
locale.h, required bysetlocale(), patch by Diego Petteno. ๐ - Checked for
inet_ntoa()in external library, needed for tests to pass on Solaris, patch by Diego Petteno. โ๏ธ - Fixes for build warnings, by Martin Hedenfalk and Carlo Marcelo Arenas Belon. ๐งน
- Fixed segfault when processing a buffer that called
cfg_include(), patch submitted by Carlo Marcelo Arenas Belon. ๐ฅโก๏ธโ - Fixed lexer match problem with unquoted strings ending in a slash. Fixed by Martin Hedenfalk, reported by Sylvain Bertrand. ๐ช
๐ฆ v2.6 - 2007-10-13 ๐ฆ
โจ Changes โจ
- Added French translation contributed by Matthieu Sion. ๐ซ๐ท
- Added build script and instructions for compiling with Mingw under Windows (contributed by Matthieu Sion). ๐ช
- Now accepts a simplified list append syntax:
option += 'value' instead of option += {'value'}
- Added flag
CFGF_NO_TITLE_DUPES: multiple section titles must be unique (duplicates raises an error, only applies to sections) (suggested by Brian Fallik). ๐ท๏ธ - Removed obsolete
confuse-configscript in favour ofpkg-config. ๐๏ธ - Windows build files now only in separate zip distribution. ๐ฆ
๐ ๏ธ Fixes ๐ ๏ธ
- Fixed rpm builds, patch by Dan Lipsitt. ๐ฆ
- Always installs
pkg-config.pcscript. ๐ - Fixed a bug reported by Josh Kropf with single sections with titles. ๐
- Added patch that escapes values with quotes and backslashes when printing. ๐จ๏ธ
- Fixed a memory leak in default values for string lists, reported by Vineeth Neelakant. ๐ง
๐ v2.5 - 2004-10-17 ๐
โจ Changes โจ
- Added flag
CFGF_NODEFAULT(option has no default value). ๐ซ - Added a tutorial. ๐
- Updated autoconf stuff, libconfuse installs with appropriate suffix now. โ๏ธ
- Added data file for
pkg-config(trypkg-config --libs libconfuse). ๐ - Updated
confuse-configscript (now only installed ifpkg-confignot found). ๐ - Added
cfg_name()andcfg_opt_name()functions. ๐
๐ ๏ธ Fixes ๐ ๏ธ
- Fixed
cfg_set_validate_func()for sections, using the'|'syntax. ๐ง
๐ v2.4 - 2004-08-09 ๐
โจ Changes โจ
- Added option type
CFGT_PTRas a user-defined type. ๐งฉ
๐ ๏ธ Fixes ๐ ๏ธ
- Fixed building of shared libraries. ๐๏ธ
๐ v2.3 - 2004-05-22 ๐
โจ Changes โจ
- Options passed to
cfg_init()are now dynamically duplicated, so it is no longer necessary to declare thecfg_opt_tarray static. ๐ - Added tests using
check(a unit testing framework for C). ๐งช - Added config script
confuse-config. ๐ ๏ธ
๐ ๏ธ Fixes ๐ ๏ธ
- Fixes compilation errors with
gcc < 3.3. ๐งฏ
๐ v2.2 - 2003-09-25 ๐
โจ Changes โจ
- Allows more characters in an unquoted string (thanks Mike). ๐ค
- Added
cfg_opt_getfunctions. ๐ฅ - Added
cfg_opt_sizefunction. ๐ - Added support to print options to a file. ๐จ๏ธ
- Added print callback function per option. ๐จ
- Simple options can be retrieved with the
cfg_getfunctions (allows using thecfg_printfunction for simple values). ๐ฏ - Added validating callback function per option. โ
๐ซถ v2.1 - 2003-07-13 ๐ซถ
โจ Changes โจ
- Reversed logic in
cfg_getXXXfunctions, they now abort if given an undeclared option name, andNULL/false if no value is set. Suggested by Ademar de Souza Reis Jr. ๐ - Sections without
CFGF_MULTIflag now have default values. ๐งฑ - The
cfg_getXXXfunctions now accept an extended syntax for the option name, trycfg_getxxx(cfg, 'sectionname|optionname'). This way one doesn't have to first get the section withcfg_getsec(). ๐งญ - Added project files for MS Visual C++ 6.0. ๐ช
- Includes
io.hon windows. ๐ช - Setting a list to the empty list in the config file now possible. ๐ญ
- Appending to default values in a list is now OK. โ
- Hexadecimal escape sequences allowed in double-quoted strings. ๐ข
- Only include NLS support if
gettextfound in libc or preinstalled. ๐ - Documented the
cfg_setlistandcfg_addlistfunctions. ๐ - The
cfg_opt_setxxxfunctions no longer take acfg_t?parameter (unused anyway). ๐ฎ
๐ ๏ธ Fixes ๐ ๏ธ
- Fixed two more memory leaks. (
val->sectionandcfg->filename) ๐ง - Fixed unterminated string bug in replacement
strndupfunction. โ๏ธ - Fixed initialization of default values for lists, when given a
NULLstring. Now initialized to the empty list. Noted by Juraj Variny. ๐ - Corrected line number with multi-line quoted strings. ๐ข
- Fixed undetected
/*comment*/(ie, without space between/*and the text). ๐ฌ - Forgot to
fclose()include file after use, found by James Haley. ๐
๐ v2.0 - 2003-04-29 ๐
NOTE: Compatibility with earlier versions is broken! ๐
โจ Changes โจ
- Changed
cfg_flag_tfrom enum to int (should now compile with C++). ๐ - Variable number of arguments to functions: function types should no longer specify number of expected arguments in the initializer, the callback should instead check the
argcvariable. ๐ข - Added documentation for the value parsing callback. ๐
- Changed the definitions of
cfg_func_tandcfg_callback_t, the cfg and option context are now both passed as parameters. ๐งฌ - Added a bunch of
cfg_setXXXfunctions to set option values after parsing. ๐ ๏ธ - Some types renamed for consistency (
cfgopt_ttocfg_opt_t,cfgval_ttocfg_value_t,cfgbool_ttocfg_bool_t). ๐ท๏ธ cfg_free_val()renamed tocfg_free_value(). ๐- Lexer symbols now uses prefix
cfg_to ease linking with other lexers. ๐ - Sections with same title are always overwritten. โป๏ธ
- Lists can now have (complete) default values in the form of a string that is parsed in the same way as the config file (see doc + examples). ๐
- Added support for building as a DLL on Windows. ๐ช
- Included project files for Borland C++ Builder 6.0. ๐งฐ
- Included project files for Dev-Cpp 5.0. ๐งฐ
- Included project files for MS Visual Studio. ๐งฐ
- Pre-built documentation now included in the source tarball. ๐
๐ ๏ธ Fixes ๐ ๏ธ
- Fixed the
cfg_tilde_expandfunction. ๐ - Fixed and extended the example programs. ๐งช
- Forgot to close the file in
cfg_parse(). ๐ - Memory leaks fixed (checked with
valgrind). ๐ง
โญ v1.2.3 - 2002-12-18 โญ
โจ Changes โจ
- Added callback support. ๐
๐ ๏ธ Fixes ๐ ๏ธ
- Fixed segfault due to uninitialized user-defined error function. ๐ฅโก๏ธโ
๐ซ v1.2.2 - 2002-11-27 ๐ซ
โจ Changes โจ
- Changed name to libConfuse (libcfg was way too common). ๐ท๏ธ
- Don't build shared libraries by default (only static). ๐๏ธ
- More Swedish translations. ๐ธ๐ช
- Implemented the
cfg_free()function (previous versions had only a stub). ๐ - New function:
cfg_free_val(). ๐ - Updated the manual. ๐
๐ okay bestie, that's the whole changelog glow-up! ๐
source/version: libConfuse Version 3.4 ยท page: md__2home_...2ChangeLog(3) ยท date: 2026-08-16
โจ periodt, now go configure something iconic โจ
๐ฆ where this page comes from
- fedora 43: libconfuse 3.4-1.fc43 ยท ISC
- fedora 43: libconfuse 3.4-1.fc43 ยท ISC
- fedora 44: libconfuse 3.4-1.fc44 ยท ISC
- fedora 44: libconfuse 3.4-1.fc44 ยท ISC
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms