CHANGES 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. CHANGES - 2016-06-12
  2. --------------------
  3. CHANGES IN Mini-XML 2.10
  4. - The version number in mxml.h was wrong (Bug #532)
  5. - The mxml.spec file was out of date (Bug #521)
  6. - Mini-XML no longer allows malformed element names (Bug #509)
  7. - mxmlLoad* and mxmlSAXLoad* did not properly create text nodes when
  8. MXML_TEXT_CALLBACK was specified (Bug #531)
  9. - mxmlDelete used a recursive algorithm which could require large
  10. amounts of stack space depending on the file (Bug #549, CVE-2016-4570)
  11. - mxmlWrite* used a recursive algorithm which could require large
  12. amounts of stack space depending on the file (Bug #549, CVE-2016-4571)
  13. CHANGES IN Mini-XML 2.9
  14. - mxmlLoad* did not correctly load value nodes with MXML_NO_CALLBACK
  15. or MXML_TEXT_CALLBACK (Bug #502)
  16. CHANGES IN Mini-XML 2.8
  17. - Now call docsetutil using xcrun on OS X (Bug #458)
  18. - mxmldoc did not escape special HTML characters inside @code foo@
  19. comments.
  20. - Fixed a memory leak in mxmlElementDeleteAttr (Bug #452)
  21. - Added MXML_MAJOR/MINOR_VERSION definitions to mxml.h (Bug $461)
  22. - Fixed a bug reading UTF-16 characters from a file (Bug #454)
  23. - Fixed a memory leak when loading invalid XML (Bug #496)
  24. - Fixed an XML fragment loading problem (Bug #494)
  25. CHANGES IN Mini-XML 2.7
  26. - Added 64-bit configurations to the VC++ project files (STR #129)
  27. - Fixed conformance of mxmldoc's HTML and CSS output.
  28. - Added data accessor ("get") functions and made the mxml_node_t and
  29. mxml_index_t structures private but still available in the Mini-XML
  30. header to preserve source compatibility (STR #118)
  31. - Updated the source headers to reference the Mini-XML license and its
  32. exceptions to the LGPL2 (STR #108)
  33. - Fixed a memory leak when loading a badly-formed XML file (STR #121)
  34. - Added a new mxmlFindPath() function to find the value node of a
  35. named element (STR #110)
  36. - Building a static version of the library did not work on Windows
  37. (STR #112)
  38. - The shared library did not include a destructor for the thread-
  39. specific data key on UNIX-based operating systems (STR #103)
  40. - mxmlLoad* did not error out on XML with multiple root nodes (STR #101)
  41. - Fixed an issue with the _mxml_vstrdupf function (STR #107)
  42. - mxmlSave* no longer write all siblings of the passed node, just that
  43. node and its children (STR #109)
  44. CHANGES IN Mini-XML 2.6
  45. - Documentation fixes (STR #91, STR #92)
  46. - The mxmldoc program did not handle typedef comments properly (STR #72)
  47. - Added support for "long long" printf formats.
  48. - The XML parser now ignores BOMs in UTF-8 XML files (STR #89)
  49. - The mxmldoc program now supports generating Xcode documentation sets.
  50. - mxmlSave*() did not output UTF-8 correctly on some platforms.
  51. - mxmlNewXML() now adds encoding="utf-8" in the ?xml directive to avoid
  52. problems with non-conformant XML parsers that assume something other
  53. than UTF-8 as the default encoding.
  54. - Wrapping was not disabled when mxmlSetWrapMargin(0) was called, and
  55. "<?xml ... ?>" was always followed by a newline (STR #76)
  56. - The mxml.pc.in file was broken (STR #79)
  57. - The mxmldoc program now handles "typedef enum name {} name" correctly
  58. (STR #72)
  59. CHANGES IN Mini-XML 2.5
  60. - The mxmldoc program now makes greater use of CSS and
  61. supports a --css option to embed an alternate stylesheet.
  62. - The mxmldoc program now supports --header and --footer
  63. options to insert documentation content before and
  64. after the generated content.
  65. - The mxmldoc program now supports a --framed option to
  66. generate framed HTML output.
  67. - The mxmldoc program now creates a table of contents
  68. including any headings in the --intro file when
  69. generating HTML output.
  70. - The man pages and man page output from mxmldoc did
  71. not use "\-" for dashes (STR #68)
  72. - The debug version of the Mini-XML DLL could not be
  73. built (STR #65)
  74. - Processing instructions and directives did not work
  75. when not at the top level of a document (STR #67)
  76. - Spaces around the "=" in attributes were not supported
  77. (STR #67)
  78. CHANGES IN Mini-XML 2.4
  79. - Fixed shared library build problems on HP-UX and Mac OS X.
  80. - The mxmldoc program did not output argument descriptions
  81. for functions properly.
  82. - All global settings (custom, error, and entity callbacks
  83. and the wrap margin) are now managed separately for each
  84. thread.
  85. - Added mxmlElementDeleteAttr() function (STR #59)
  86. - mxmlElementSetAttrf() did not work (STR #57)
  87. - mxmlLoad*() incorrectly treated declarations as parent
  88. elements (STR #56)
  89. - mxmlLoad*() incorrectly allowed attributes without values
  90. (STR #47)
  91. - Fixed Visual C++ build problems (STR #49)
  92. - mxmlLoad*() did not return NULL when an element contained
  93. an error (STR #46)
  94. - Added support for the apos character entity (STR #54)
  95. - Fixed whitespace detection with Unicode characters (STR
  96. #48)
  97. - mxmlWalkNext() and mxmlWalkPrev() did not work correctly
  98. when called with a node with no children as the top node
  99. (STR #53)
  100. CHANGES IN Mini-XML 2.3
  101. - Added two exceptions to the LGPL to support static
  102. linking of applications against Mini-XML
  103. - The mxmldoc utility can now generate man pages, too.
  104. - Added a mxmlNewXML() function
  105. - Added a mxmlElementSetAttrf() function (STR #43)
  106. - Added snprintf() emulation function for test program (STR
  107. #32)
  108. - Added the _CRT_SECURE_NO_DEPRECATE definition when
  109. building on VC++ 2005 (STR #36)
  110. - mxmlLoad*() did not detect missing > characters in
  111. elements (STR #41)
  112. - mxmlLoad*() did not detect missing close tags at the end
  113. of an XML document (STR #45)
  114. - Added user_data and ref_count members to mxml_node_t
  115. structure
  116. - Added mxmlReleaseNode() and mxmlRetainNode() APIs for
  117. reference-counted nodes
  118. - Added mxmlSetWrapMargin() to control the wrapping of XML
  119. output
  120. - Added conditional check for EINTR error code for
  121. certain Windows compilers that do not define it (STR
  122. #33)
  123. - The mxmldoc program now generates correct HTML 4.0
  124. output - previously it generated invalid XHTML
  125. - The mxmldoc program now supports "@deprecated@,
  126. "@private@", and "@since version@" comments
  127. - Fixed function and enumeration type bugs in mxmldoc.
  128. - Fixed the XML schema for mxmldoc
  129. - The mxmldoc program now supports --intro, --section,
  130. and --title options
  131. - The mxmlLoad*() functions could leak a node on an error
  132. (STR #27)
  133. - The mxml_vsnprintf() function could get in an infinite
  134. loop on a buffer overflow (STR #25)
  135. - Added new mxmlNewCDATA() and mxmlSetCDATA() functions
  136. to create and set CDATA nodes, which are really just
  137. special element nodes
  138. - Added new MXML_IGNORE type and MXML_IGNORE_CB callback
  139. to ignore non-element nodes, e.g. whitespace
  140. - mxmlLoad*() crashed when reporting an error in some
  141. invalid XML (STR #23)
  142. CHANGES IN Mini-XML 2.2.2
  143. - mxmlLoad*() did not treat custom data as opaque, so
  144. whitespace characters would be lost.
  145. CHANGES IN Mini-XML 2.2.1
  146. - mxmlLoadFd(), mxmlLoadFile(), and mxmlLoadString() now
  147. correctly return NULL on error (STR #21)
  148. - mxmlNewInteger(), mxmlNewOpaque(), mxmlNewReal(),
  149. mxmlNewText(), and mxmlNewTextf() incorrectly required
  150. a parent node (STR #22)
  151. - Fixed an XML output bug in mxmldoc.
  152. - The "make install" target now uses the install command
  153. to set the proper permissions on UNIX/Linux/OSX.
  154. - Fixed a MingW/Cygwin compilation problem (STR #18)
  155. CHANGES IN Mini-XML 2.2
  156. - Added shared library support (STR #17)
  157. - mxmlLoad*() now returns an error when an XML stream
  158. contains illegal control characters (STR #10)
  159. - mxmlLoad*() now returns an error when an element
  160. contains two attributes with the same name in
  161. conformance with the XML spec (STR #16)
  162. - Added support for CDATA (STR #14, STR #15)
  163. - Updated comment and processing instruction handling -
  164. no entity support per XML specification.
  165. - Added checking for invalid comment termination ("--->"
  166. is not allowed)
  167. CHANGES IN Mini-XML 2.1
  168. - Added support for custom data nodes (STR #6)
  169. - Now treat UTF-8 sequences which are longer than
  170. necessary as an error (STR #4)
  171. - Fixed entity number support (STR #8)
  172. - Fixed mxmlLoadString() bug with UTF-8 (STR #7)
  173. - Fixed entity lookup bug (STR #5)
  174. - Added mxmlLoadFd() and mxmlSaveFd() functions.
  175. - Fixed multi-word UTF-16 handling.
  176. CHANGES IN Mini-XML 2.0
  177. - New programmers manual.
  178. - Added Visual C++ project files for Microsoft Windows
  179. users.
  180. - Added optimizations to mxmldoc, mxmlSaveFile(), and
  181. mxmlIndexNew() (STR #2)
  182. - mxmlEntityAddCallback() now returns an integer status
  183. (STR #2)
  184. - Added UTF-16 support (input only; all output is UTF-8)
  185. - Added index functions to build a searchable index of
  186. XML nodes.
  187. - Added character entity callback interface to support
  188. additional character entities beyond those defined in
  189. the XHTML specification.
  190. - Added support for XHTML character entities.
  191. - The mxmldoc utility now produces XML output which
  192. conforms to an updated XML schema, described in the file
  193. "doc/mxmldoc.xsd".
  194. - Changed the whitespace callback interface to return
  195. strings instead of a single character, allowing for
  196. greater control over the formatting of XML files
  197. written using Mini-XML. THIS CHANGE WILL REQUIRE
  198. CHANGES TO YOUR 1.x CODE IF YOU USE WHITESPACE
  199. CALLBACKS.
  200. - The mxmldoc utility is now capable of documenting C++
  201. classes, functions, and structures, and correctly
  202. handles C++ comments.
  203. - Added new modular tests for mxmldoc.
  204. - Updated the mxmldoc output to be more compatible with
  205. embedding in manuals produced with HTMLDOC.
  206. - The makefile incorrectly included a "/" separator
  207. between the destination path and install path. This
  208. caused problems when building and installing with
  209. MingW.
  210. CHANGES IN Mini-XML 1.3
  211. - Fixes for mxmldoc.
  212. - Added support for reading standard HTML entity names.
  213. - mxmlLoadString/File() did not decode character
  214. entities in element names, attribute names, or
  215. attribute values.
  216. - mxmlLoadString/File() would crash when loading non-
  217. conformant XML data under an existing parent (top)
  218. node.
  219. - Fixed several bugs in the mxmldoc utility.
  220. - Added new error callback function to catch a variety
  221. of errors and log them to someplace other than stderr.
  222. - The mxmlElementSetAttr() function now allows for NULL
  223. attribute values.
  224. - The load and save functions now properly handle quoted
  225. element and attribute name strings properly, e.g. for
  226. !DOCTYPE declarations.
  227. CHANGES IN Mini-XML 1.2
  228. - Added new "set" methods to set the value of a node.
  229. - Added new formatted text methods mxmlNewTextf() and
  230. mxmlSetTextf() to create/set a text node value using
  231. printf-style formats.
  232. - Added new standard callbacks for use with the mxmlLoad
  233. functions.
  234. - Updated the HTML documentation to include examples of
  235. the walk and load function output.
  236. - Added --with/without-ansi configure option to control
  237. the strdup() function check.
  238. - Added --with/without-snprintf configure option to
  239. control the snprintf() and vsnprintf() function
  240. checks.
  241. CHANGES IN Mini-XML 1.1.2
  242. - The mxml(3) man page wasn't updated for the string
  243. functions.
  244. - mxmlSaveString() returned the wrong number of
  245. characters.
  246. - mxml_add_char() updated the buffer pointer in the
  247. wrong place.
  248. CHANGES IN Mini-XML 1.1.1
  249. - The private mxml_add_ch() function did not update the
  250. start-of-buffer pointer which could cause a crash when
  251. using mxmlSaveString().
  252. - The private mxml_write_ws() function called putc()
  253. instead of using the proper callback which could cause
  254. a crash when using mxmlSaveString().
  255. - Added a mxmlSaveAllocString() convenience function for
  256. saving an XML node tree to an allocated string.
  257. CHANGES IN Mini-XML 1.1
  258. - The mxmlLoadFile() function now uses dynamically
  259. allocated string buffers for element names, attribute
  260. names, and attribute values. Previously they were
  261. capped at 16383, 255, and 255 bytes, respectively.
  262. - Added a new mxmlLoadString() function for loading an
  263. XML node tree from a string.
  264. - Added a new mxmlSaveString() function for saving an
  265. XML node tree to a string.
  266. - Add emulation of strdup() if the local platform does
  267. not provide the function.
  268. CHANGES IN Mini-XML 1.0
  269. - The mxmldoc program now handles function arguments,
  270. structures, unions, enumerations, classes, and
  271. typedefs properly.
  272. - Documentation provided via mxmldoc and more in-line
  273. comments in the code.
  274. - Added man pages and packaging files.
  275. CHANGES IN Mini-XML 0.93
  276. - New mxmldoc example program that is also used to
  277. create and update code documentation using XML and
  278. produce HTML reference pages.
  279. - Added mxmlAdd() and mxmlRemove() functions to add and
  280. remove nodes from a tree. This provides more
  281. flexibility over where the nodes are inserted and
  282. allows nodes to be moved within the tree as needed.
  283. - mxmlLoadFile() now correctly handles comments.
  284. - mxmlLoadFile() now supports the required "gt", "quot",
  285. and "nbsp" character entities.
  286. - mxmlSaveFile() now uses newlines as whitespace
  287. when valid to do so.
  288. - mxmlFindElement() now also takes attribute name and
  289. attribute value string arguments to limit the search
  290. to specific elements with attributes and/or values.
  291. NULL pointers can be used as "wildcards".
  292. - Added uninstall target to makefile, and auto-reconfig
  293. if Makefile.in or configure.in are changed.
  294. - mxmlFindElement(), mxmlWalkNext(), and mxmlWalkPrev()
  295. now all provide "descend" arguments to control whether
  296. they descend into child nodes in the tree.
  297. - Fixed some whitespace issues in mxmlLoadFile().
  298. - Fixed Unicode output and whitespace issues in
  299. mxmlSaveFile().
  300. - mxmlSaveFile() now supports a whitespace callback to
  301. provide more human-readable XML output under program
  302. control.
  303. CHANGES IN Mini-XML 0.92
  304. - mxmlSaveFile() didn't return a value on success.
  305. CHANGES IN Mini-XML 0.91
  306. - mxmlWalkNext() would go into an infinite loop.
  307. CHANGES IN Mini-XML 0.9
  308. - Initial public release.