Skip to content

v4.0.0

Compare
Choose a tag to compare
@michaelrsweet michaelrsweet released this 20 Mar 16:19
· 19 commits to master since this release
9856aa5

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-prefix configure option to disable)
  • Added mxmlLoadIO and mxmlSaveIO functions to load and save XML via callbacks (Issue #98)
  • Added new MXML_TYPE_CDATA, MXML_TYPE_COMMENT, MXML_TYPE_DECLARATION, and MXML_TYPE_DIRECTIVE node types (Issue #250)
  • Added mxmlLoadFilename and mxmlSaveFilename functions (Issue #291)
  • Added AFL fuzzing support (Issue #306)
  • Added mxmlOptions APIs 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_t enumerations to MXML_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 bool value 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!