v4.0.0
Mini-XML v4.0 adds some new features, updates the callback APIs to include data pointers, and generally cleans up and normalizes the interfaces from prior releases. While largely similar, this release is not source or binary compatible with Mini-XML v3.x - migration details are included in the documentation.
Mini-XML v4.0 weighs in at a mere 3,491 lines of code, down from the 4,300 lines of code in Mini-XML v3.3.1. Changes include:
- Now require C99 support (Issue #300)
- Now install as "libmxml4" to support installing both Mini-XML 3.x and 4.x at the same time (use
--disable-libmxml4-prefixconfigure option to disable) - Added
mxmlLoadIOandmxmlSaveIOfunctions to load and save XML via callbacks (Issue #98) - Added new
MXML_TYPE_CDATA,MXML_TYPE_COMMENT,MXML_TYPE_DECLARATION, andMXML_TYPE_DIRECTIVEnode types (Issue #250) - Added
mxmlLoadFilenameandmxmlSaveFilenamefunctions (Issue #291) - Added AFL fuzzing support (Issue #306)
- Added
mxmlOptionsAPIs to replace the long list of callbacks and options for each of the load and save functions (Issue #312) - Added string copy/free callbacks to support alternate memory management of strings.
- Renamed
mxml_type_tenumerations toMXML_TYPE_xxx(Issue #251) - Updated APIs to use bool type instead of an int representing a boolean value.
- Updated the SAX callback to return a
boolvalue to control processing (Issue #51) - Updated the load and save callbacks to include a context pointer (Issue #106)
- Fixed some warnings (Issue #301)
- Fixed real number support in non-English locales (Issue #311)
Enjoy!