mxml/CHANGES.md

213 lines
8.9 KiB
Markdown
Raw Normal View History

2017-03-22 19:23:27 +00:00
# Changes in Mini-XML 2.11
- CDATA nodes now omit the trailing "]]" for convenience (Issue #170)
2017-03-29 23:12:41 +00:00
- Fixed a memory leak in mxmlDelete (Issue #183)
- mxmlElementSetAttrf did not work with some versions of Visual Studio
(Issue #184)
- The configure script now properly supports cross-compilation (Issue #188)
2017-03-22 19:23:27 +00:00
# Changes in Mini-XML 2.10
- The version number in mxml.h was wrong.
- The mxml.spec file was out of date.
- Mini-XML no longer allows malformed element names.
- `mxmlLoad*` and `mxmlSAXLoad*` did not properly create text nodes when
MXML_TEXT_CALLBACK was specified.
- `mxmlDelete` used a recursive algorithm which could require large amounts of
stack space depending on the file. (CVE-2016-4570)
- `mxmlWrite*` used a recursive algorithm which could require large amounts of
stack space depending on the file. (CVE-2016-4571)
# Changes in Mini-XML 2.9
- `mxmlLoad*` did not correctly load value nodes with `MXML_NO_CALLBACK` or
`MXML_TEXT_CALLBACK`.
# Changes in Mini-XML 2.8
- Now call docsetutil using xcrun on macOS.
- mxmldoc did not escape special HTML characters inside @code foo@ comments.
- Fixed a memory leak in `mxmlElementDeleteAttr`.
- Added `MXML_MAJOR/MINOR_VERSION` definitions to mxml.h.
- Fixed a bug reading UTF-16 characters from a file.
- Fixed a memory leak when loading invalid XML.
- Fixed an XML fragment loading problem.
# Changes in Mini-XML 2.7
- Added 64-bit configurations to the VC++ project files.
- Fixed conformance of mxmldoc's HTML and CSS output.
- Added data accessor ("get") functions and made the `mxml_node_t` and
`mxml_index_t` structures private but still available in the Mini-XML header to
preserve source compatibility.
- Updated the source headers to reference the Mini-XML license and its
exceptions to the LGPL2.
- Fixed a memory leak when loading a badly-formed XML file.
- Added a new mxmlFindPath function to find the value node of a named element.
- Building a static version of the library did not work on Windows.
- The shared library did not include a destructor for the thread-specific data
key on UNIX-based operating systems.
- mxmlLoad* did not error out on XML with multiple root nodes.
- Fixed an issue with the `_mxml_vstrdupf` function.
- `mxmlSave*` no longer write all siblings of the passed node, just that node
and its children.
# Changes in Mini-XML 2.6
- Documentation fixes.
- The mxmldoc program did not handle typedef comments properly.
- Added support for "long long" printf formats.
- The XML parser now ignores BOMs in UTF-8 XML files.
- The mxmldoc program now supports generating Xcode documentation sets.
- `mxmlSave*` did not output UTF-8 correctly on some platforms.
- `mxmlNewXML` now adds encoding="utf-8" in the ?xml directive to avoid
problems with non-conformant XML parsers that assume something other
than UTF-8 as the default encoding.
- Wrapping was not disabled when mxmlSetWrapMargin(0) was called, and
"<?xml ... ?>" was always followed by a newline.
- The mxml.pc.in file was broken.
- The mxmldoc program now handles "typedef enum name {} name" correctly.
# Changes in Mini-XML 2.5
- The mxmldoc program now makes greater use of CSS and supports a `--css` option
to embed an alternate stylesheet.
- The mxmldoc program now supports `--header` and `--footer` options to insert
documentation content before and after the generated content.
- The mxmldoc program now supports a `--framed` option to generate framed HTML
output.
- The mxmldoc program now creates a table of contents including any headings in
the `--intro` file when generating HTML output.
- The man pages and man page output from mxmldoc did not use "\-" for dashes.
- The debug version of the Mini-XML DLL could not be built.
- Processing instructions and directives did not work when not at the top level
of a document.
- Spaces around the "=" in attributes were not supported.
# Changes in Mini-XML 2.4
- Fixed shared library build problems on HP-UX and Mac macOS.
- The mxmldoc program did not output argument descriptions for functions
properly.
- All global settings (custom, error, and entity callbacks and the wrap margin)
are now managed separately for each thread.
- Added `mxmlElementDeleteAttr` function.
- `mxmlElementSetAttrf` did not work.
- `mxmlLoad*` incorrectly treated declarations as parent elements.
- `mxmlLoad*` incorrectly allowed attributes without values.
- Fixed Visual C++ build problems.
- `mxmlLoad*` did not return NULL when an element contained an error.
- Added support for the apos character entity.
- Fixed whitespace detection with Unicode characters.
- `mxmlWalkNext` and `mxmlWalkPrev` did not work correctly when called with a
node with no children as the top node.
# Changes in Mini-XML 2.3
- Added two exceptions to the LGPL to support static linking of applications
against Mini-XML.
- The mxmldoc utility can now generate man pages, too.
- Added a mxmlNewXML function.
- Added a mxmlElementSetAttrf function.
- Added snprintf() emulation function for test program.
- Added the _CRT_SECURE_NO_DEPRECATE definition when building on VC++ 2005.
- mxmlLoad* did not detect missing > characters in elements.
- mxmlLoad* did not detect missing close tags at the end of an XML document.
- Added user_data and ref_count members to mxml_node_t structure.
- Added mxmlReleaseNode() and mxmlRetainNode() APIs for reference-counted nodes.
- Added mxmlSetWrapMargin() to control the wrapping of XML output.
- Added conditional check for EINTR error code for certain Windows compilers
that do not define it.
- The mxmldoc program now generates correct HTML 4.0 output - previously it
generated invalid XHTML.
- The mxmldoc program now supports "@deprecated@, "@private@", and "@since
version@" comments.
- Fixed function and enumeration type bugs in mxmldoc.
- Fixed the XML schema for mxmldoc.
- The mxmldoc program now supports `--intro`, `--section`, and `--title`
options.
- The `mxmlLoad*` functions could leak a node on an error.
- The `mxml_vsnprintf` function could get in an infinite loop on a buffer
overflow.
- Added new `mxmlNewCDATA` and `mxmlSetCDATA` functions to create and set CDATA
nodes, which are really just special element nodes.
- Added new `MXML_IGNORE` type and `MXML_IGNORE_CB` callback to ignore non-
element nodes, e.g. whitespace.
- `mxmlLoad*` crashed when reporting an error in some invalid XML.
# Changes in Mini-XML 2.2.2
- `mxmlLoad*` did not treat custom data as opaque, so whitespace characters
would be lost.
# Changes in Mini-XML 2.2.1
- `mxmlLoad*` now correctly return NULL on error.
- `mxmlNewInteger`, `mxmlNewOpaque`, `mxmlNewReal`, `mxmlNewText`, and
`mxmlNewTextf` incorrectly required a parent node.
- Fixed an XML output bug in mxmldoc.
- The "make install" target now uses the install command to set the proper
permissions on UNIX/Linux/macOS.
- Fixed a MingW/Cygwin compilation problem.
# Changes in Mini-XML 2.2
- Added shared library support.
- `mxmlLoad*` now return an error when an XML stream contains illegal control
characters.
- `mxmlLoad*` now return an error when an element contains two attributes with
the same name in conformance with the XML spec.
- Added support for CDATA.
- Updated comment and processing instruction handling - no entity support per
XML specification.
- Added checking for invalid comment termination: "--->" is not allowed.
# Changes in Mini-XML 2.1
- Added support for custom data nodes.
- Now treat UTF-8 sequences which are longer than necessary as an error.
- Fixed entity number support.
- Fixed mxmlLoadString() bug with UTF-8.
- Fixed entity lookup bug.
- Added `mxmlLoadFd` and `mxmlSaveFd` functions.
- Fixed multi-word UTF-16 handling.
# Changes in Mini-XML 2.0
- New programmers manual.
- Added Visual C++ project files for Microsoft Windows users.
- Added optimizations to mxmldoc, `mxmlSaveFile`, and `mxmlIndexNew`.
- `mxmlEntityAddCallback` now returns an integer status.
- Added UTF-16 support (input only; all output is UTF-8).
- Added index functions to build a searchable index of XML nodes.
- Added character entity callback interface to support additional character
entities beyond those defined in the XHTML specification.
- Added support for XHTML character entities.
- The mxmldoc utility now produces XML output which conforms to an updated XML
schema, described in the file "doc/mxmldoc.xsd".
- Changed the whitespace callback interface to return strings instead of a
single character, allowing for greater control over the formatting of XML
files written using Mini-XML. THIS CHANGE WILL REQUIRE CHANGES TO YOUR 1.x
CODE IF YOU USE WHITESPACE CALLBACKS.
- The mxmldoc utility is now capable of documenting C++ classes, functions, and
structures, and correctly handles C++ comments.
- Added new modular tests for mxmldoc.
- Updated the mxmldoc output to be more compatible with embedding in manuals
produced with HTMLDOC.
- The makefile incorrectly included a "/" separator between the destination path
and install path. This caused problems when building and installing with
MingW.