MD__2BUILD_2LIBCONFUSE-AMVGGZ_2LIBCONFUSE-3_84_2CHANGELOG(3)
md__2build_2libconfuse-aMVggZ_2libconfuse-3_84_2ChangeLog ๐ Library Functions Manual
okay bestie, so this is the Change Log for libConfuse and like... every relevant change to the project is documented in here. no cap. ๐โจ
NAME ๐
md__2build_2libconfuse-aMVggZ_2libconfuse-3_84_2ChangeLog โ Change Log
All relevant changes to the project are documented in this file. periodt. ๐
v3.4 โ 2026-08-16 ๐ธ
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->filenameforfile:linediagnostics, 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 optionerrors forKEYSTRVALsections ๐ซ - Fix configure failure with autoconf 2.73, backslash continuations in the
AC_CONFIG_FILESlist are no longer accepted ๐ ๏ธ
v3.3 โ 2020-06-25 ๐ฆ
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 ๐บ
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 ๐ผ
Fixes ๐ง
- Issue #96: Add Windows/mingw compatible
fmemopen()replacement ๐ช - Issue #98: Fix
v3.1regression, segfault on comment-only lines ๐ฅ
v3.1 โ 2017-05-24 ๐ท
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:
SIGSEGVwhen 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.1updateAM_GNU_GETTEXT()to useAC_PROG_MKDIR_Pinstead ofAM_PROG_MKDIR_P, butv0.18.1.1is included in Ubuntu 12.04 LTS. Fortunately Ubuntu 14.04 LTS shipsv0.18.3.1and Debian Jessie shipsv0.19.3. Unfortunately, CentOS7 and RHEL7 shipsv0.18.2.1, so for best compat. level at this point in time we requirev0.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
asserton 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 ๐ป
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
-ansifixes 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 ๐ ๏ธ
- Exposed the
cfg_setopt()function in the public API โ suggested by Daniel Pocock, iconic move โจ - Added doxygen documentation for
cfg_setopt(), by Daniel Pocock ๐ - Don't fail on compiler warnings, removed
-Werror, by Martin Hedenfalk โ no more drama over warnings ๐ - Avoid aborting processing of the configuration buffer after returning from include processing. By Carlo Marcelo Arenas Belon โ like, keep it going, bestie!
- Make building of examples optional. โ choices, we love to see it ๐
Fixes ๐ง
- Fixed user defined error callbacks, by Martin Hedenfalk โ they work now, periodt.
- Include
locale.h, required bysetlocale(), patch by Diego Petteno โ gotta have that locale love ๐ - Check for
inet_ntoa()in external library, needed for tests to pass on Solaris, patch by Diego Petteno โ Solaris said "no cap" and this fixed it โ๏ธ - Fixes for build warnings, by Martin Hedenfalk and Carlo Marcelo Arenas Belon โ warnings? not on our watch ๐
- Fixed segfault when processing a buffer that called
cfg_include(), patch submitted by Carlo Marcelo Arenas Belon โ that crash was not the vibe, thank u next ๐ - Fixed lexer match problem with unquoted strings ending in a slash. Fixed by Martin Hedenfalk, reported by Sylvain Bertrand. โ slashes were acting sus, now they're fine ๐ฆ
v2.6 - 2007-10-13
Changes ๐ ๏ธ
- Added French translation contributed by Matthieu Sion โ merci beaucoup! ๐ซ๐ท
- Added build script and instructions for compiling with Mingw under Windows (contributed by Matthieu Sion) โ Windows besties, we got you ๐ช
- Now accepts a simplified list append syntax:
option += "value" instead of option += {"value"}
Like, so much easier, no cap. ๐
- Added flag
CFGF_NO_TITLE_DUPES: multiple section titles must be unique (duplicates raises an error, only applies to sections) (suggested by Brian Fallik) โ no duplicate titles, that's the rule ๐ - Removed obsolete
confuse-configscript in favour ofpkg-configโ out with the old, in with the new โจ - Windows build files now only in separate zip distribution โ keep it tidy ๐งน
Fixes ๐ง
- Fixed rpm builds, patch by Dan Lipsitt โ rpm said "error" but now it's slaying ๐ฆ
- Always installs pkg-config
.pcscript โ pkg-config stays ready ๐ - Fixed a bug reported by Josh Kropf with single sections with titles โ titles were being messy, now they're chill ๐ฆ
- Added patch that escapes values with quotes and backslashes when printing. โ printing with style, escaped and safe ๐
- Fixed a memory leak in default values for string lists, reported by Vineeth Neelakant. โ memory leak? not today, satan ๐
v2.5 - 2004-10-17
Changes ๐ ๏ธ
- Added flag
CFGF_NODEFAULT(option has no default value) โ sometimes you just don't have a default, and that's valid ๐โโ๏ธ - Added a tutorial โ teaching the girlies how to use it, we love an educational moment ๐
- Updated autoconf stuff, libconfuse installs with appropriate suffix now โ autoconf got a glow-up โจ
- Added data file for pkg-config (try
pkg-config --libs libconfuse) โ pkg-config stays winning ๐ - Updated
confuse-configscript (now only installed if pkg-config not found) โ backup plan, we love to see it ๐ - Added
cfg_name()andcfg_opt_name()functions โ new functions just dropped! ๐ฅ
Fixes ๐ง
- Fixed
cfg_set_validate_func()for sections, using the"|"syntax โ the pipe syntax was acting up, now it's fixed ๐ ๏ธ
v2.4 - 2004-08-09
Changes ๐ ๏ธ
- Added option type
CFGT_PTRas a user-defined type โ pointers, but make it custom ๐
Fixes ๐ง
- Fixed building of shared libraries โ shared libs were broken, now they're not ๐ฆ
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 โ dynamic duplication, we love efficiency ๐ - Added tests using 'check' (a unit testing framework for C) โ testing era, let's go ๐งช
- Added config script
confuse-configโ another script, another slay ๐
Fixes ๐ง
- Fixes compilation errors with gcc < 3.3 โ old gcc was struggling, now it's fine ๐
v2.2 - 2003-09-25
Changes ๐ ๏ธ
- Allows more characters in an unquoted string (thanks Mike) โ more characters, more freedom, thanks Mike! ๐
- Added
cfg_opt_getfunctions โ getting options, iconic โจ - Added
cfg_opt_sizefunction โ size matters, and now you can get it ๐ - Added support to print options to a file โ print to file, bougie behavior ๐
- Added print callback function per option โ callbacks for days ๐
- Simple options can be retrieved with the
cfg_getfunctions (allows using thecfg_printfunction for simple values) โ simple options, simple retrieval, we love it ๐ - Added validating callback function per option โ validation is self-care ๐
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. โ logic reversed, now it's strict but fair ๐โโ๏ธ - Sections without
CFGF_MULTIflag now have default values โ defaults for everyone! ๐ - 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(). โ extended syntax, shorthand queen ๐ - Added project files for MS Visual C++ 6.0 โ Visual C++ 6.0 stans, rise ๐ช
- Includes
io.hon windows โ windows got that include ๐ป - Setting a list to the empty list in the config file now possible. โ empty list, but make it valid ๐ณ๏ธ
- Appending to default values in a list is now OK. โ appending to defaults, we love to see it โ
- Hexadecimal escape sequences allowed in double-quoted strings โ hex escapes, fancy ๐ข
- Only include NLS support if gettext found in libc or preinstalled โ NLS only when gettext is there, conditional slay ๐
- Documented the
cfg_setlistandcfg_addlistfunctions โ documentation is self-care ๐ - The
cfg_opt_setxxxfunctions no longer take acfg_t?parameter (unused anyway) โ removed the useless param, minimalism โจ
Fixes ๐ง
- Fixed two more memory leaks. (
val->sectionandcfg->filename) โ leaks fixed, memory is clean ๐งผ - Fixed unterminated string bug in replacement
strndupfunction โ strings were unterminated, now they're terminated ๐ - Fixed initialization of default values for lists, when given a
NULLstring. Now initialized to the empty list. Noted by Juraj Variny. โNULLstring no more, empty list instead ๐ณ๏ธ - Corrected line number with multi-line quoted strings โ line numbers were off, now they're accurate ๐ข
- Fixed undetected
/*comment*/(ie, without space between/*and the text) โ comments without space were undetected, now they're seen ๐ - Forgot to
fclose()include file after use, found by James Haley โ forgot to close, now we close it ๐ช
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++) โ enum to int, C++ besties rejoice ๐ - 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. โ variadic functions, checkargcin callbacks ๐ฏ - Added documentation for the value parsing callback โ docs for callbacks, we love an explanation ๐
- Changed the definitions of
cfg_func_tandcfg_callback_t, the cfg and option context are now both passed as parameters โ new definitions, both contexts passed ๐ง - Added a bunch of
cfg_setXXXfunctions to set option values after parsing โ set values after parsing, flexibility โจ - Some types renamed for consistency (
cfgopt_ttocfg_opt_t,cfgval_ttocfg_value_t,cfgbool_ttocfg_bool_t) โ renamed for consistency, we love a makeover ๐ cfg_free_val()renamed tocfg_free_value()โ name change, more consistent now ๐ท๏ธ- Lexer symbols now uses prefix
cfg_to ease linking with other lexers โ prefixcfg_for easier linking, smart ๐ - Sections with same title are always overwritten โ same title? overwritten, no duplicates ๐ฏโโ๏ธ
- 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) โ lists with default values, parsed like config files ๐
- Added support for building as a DLL on Windows โ DLL on Windows, we love cross-platform ๐ช
- Included project files for Borland C++ Builder 6.0 โ Borland C++ Builder 6.0, blast from the past ๐ฐ๏ธ
- Included project files for Dev-Cpp 5.0 โ Dev-Cpp 5.0, old school cool ๐พ
- Included project files for MS Visual Studio โ Visual Studio, we see you ๐
- Pre-built documentation now included in the source tarball โ docs in the tarball, convenience ๐
Fixes ๐ง
- Fixed the
cfg_tilde_expandfunction โ tilde expansion fixed, home directory vibes ๐ - Fixed and extended the example programs โ examples fixed and extended, learning made easy ๐
- Forgot to close the file in
cfg_parse()โ forgot to close, now we close it ๐ช - Memory leaks fixed (checked with valgrind) โ valgrind checked, leaks fixed ๐ต๏ธโโ๏ธ
v1.2.3 - 2002-12-18
Changes ๐ ๏ธ
- Added callback support โ callbacks are here, we love a function that calls back ๐
Fixes ๐ง
- Fixed segfault due to uninitialized user-defined error function โ segfault fixed, uninitialized error function no more ๐
v1.2.2 - 2002-11-27
Changes ๐ ๏ธ
- Changed name to libConfuse (libcfg was way too common) โ new name, libConfuse, way less common ๐
- Don't build shared libraries by default (only static) โ static only by default, keep it simple ๐งฑ
- More Swedish translations โ more Swedish, tack sรฅ mycket! ๐ธ๐ช
- Implemented the
cfg_free()function (previous versions had only a stub) โcfg_free()implemented, no more stub ๐๏ธ - New function:
cfg_free_val()โ new functioncfg_free_val(), iconic โจ - Updated the manual โ manual updated, we stay fresh ๐
And that's the tea, bestie! โ This was the changelog for libConfuse Version 3.4, and the manpage is md__2build..._2ChangeLog(3). Stay slaying, and remember: keep your configs cute and your code compiling! ๐โจ๐ฆ
๐ฆ where this page comes from
- ubuntu stonking: libconfuse-doc 3.4-1 ยท ISC
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms