relnotes.html 16 KB

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