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