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