summaryrefslogtreecommitdiff
path: root/xml/CHANGES
blob: 37a9614706cf220ae292c3eb6a981acf08bb5886 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
CHANGES - 2011-12-20
--------------------

ArgyllCMS Changes:
	- Added mxmlFindPathNode() variant of mxmlFindPath() that doesn't
	  return the child node.

CHANGES IN Mini-XML 2.7

	- Added 64-bit configurations to the VC++ project files (STR #129)
	- 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 (STR #118)
	- Updated the source headers to reference the Mini-XML license and its
	  exceptions to the LGPL2 (STR #108)
	- Fixed a memory leak when loading a badly-formed XML file (STR #121)
      	- Added a new mxmlFindPath() function to find the value node of a
	  named element (STR #110)
	- Building a static version of the library did not work on Windows
	  (STR #112)
	- The shared library did not include a destructor for the thread-
	  specific data key on UNIX-based operating systems (STR #103)
	- mxmlLoad* did not error out on XML with multiple root nodes (STR #101)
	- Fixed an issue with the _mxml_vstrdupf function (STR #107)
	- mxmlSave* no longer write all siblings of the passed node, just that
	  node and its children (STR #109)


CHANGES IN Mini-XML 2.6

	- Documentation fixes (STR #91, STR #92)
	- The mxmldoc program did not handle typedef comments properly (STR #72)
	- Added support for "long long" printf formats.
	- The XML parser now ignores BOMs in UTF-8 XML files (STR #89)
	- 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 (STR #76)
	- The mxml.pc.in file was broken (STR #79)
	- The mxmldoc program now handles "typedef enum name {} name" correctly
	  (STR #72)


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 (STR #68)
	- The debug version of the Mini-XML DLL could not be
	  built (STR #65)
	- Processing instructions and directives did not work
	  when not at the top level of a document (STR #67)
	- Spaces around the "=" in attributes were not supported
	  (STR #67)


CHANGES IN Mini-XML 2.4

	- Fixed shared library build problems on HP-UX and Mac OS X.
	- 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 (STR #59)
	- mxmlElementSetAttrf() did not work (STR #57)
	- mxmlLoad*() incorrectly treated declarations as parent
	  elements (STR #56)
	- mxmlLoad*() incorrectly allowed attributes without values
	  (STR #47)
	- Fixed Visual C++ build problems (STR #49)
	- mxmlLoad*() did not return NULL when an element contained
	  an error (STR #46)
	- Added support for the apos character entity (STR #54)
	- Fixed whitespace detection with Unicode characters (STR
	  #48)
	- mxmlWalkNext() and mxmlWalkPrev() did not work correctly
	  when called with a node with no children as the top node
	  (STR #53)


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 (STR #43)
	- Added snprintf() emulation function for test program (STR
	  #32)
	- Added the _CRT_SECURE_NO_DEPRECATE definition when
	  building on VC++ 2005 (STR #36)
	- mxmlLoad*() did not detect missing > characters in
	  elements (STR #41)
	- mxmlLoad*() did not detect missing close tags at the end
	  of an XML document (STR #45)
	- 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 (STR
	  #33)
	- 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
	  (STR #27)
	- The mxml_vsnprintf() function could get in an infinite
	  loop on a buffer overflow (STR #25)
	- 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 (STR #23)


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

	- mxmlLoadFd(), mxmlLoadFile(), and mxmlLoadString() now
	  correctly return NULL on error (STR #21)
	- mxmlNewInteger(), mxmlNewOpaque(), mxmlNewReal(),
	  mxmlNewText(), and mxmlNewTextf() incorrectly required
	  a parent node (STR #22)
	- Fixed an XML output bug in mxmldoc.
	- The "make install" target now uses the install command
	  to set the proper permissions on UNIX/Linux/OSX.
	- Fixed a MingW/Cygwin compilation problem (STR #18)


CHANGES IN Mini-XML 2.2

	- Added shared library support (STR #17)
	- mxmlLoad*() now returns an error when an XML stream
	  contains illegal control characters (STR #10)
	- mxmlLoad*() now returns an error when an element
	  contains two attributes with the same name in
	  conformance with the XML spec (STR #16)
	- Added support for CDATA (STR #14, STR #15)
	- 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 (STR #6)
	- Now treat UTF-8 sequences which are longer than
	  necessary as an error (STR #4)
	- Fixed entity number support (STR #8)
	- Fixed mxmlLoadString() bug with UTF-8 (STR #7)
	- Fixed entity lookup bug (STR #5)
	- 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() (STR #2)
	- mxmlEntityAddCallback() now returns an integer status
	  (STR #2)
	- 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.


CHANGES IN Mini-XML 1.3

	- Fixes for mxmldoc.
	- Added support for reading standard HTML entity names.
	- mxmlLoadString/File() did not decode character
	  entities in element names, attribute names, or
	  attribute values.
	- mxmlLoadString/File() would crash when loading non-
	  conformant XML data under an existing parent (top)
	  node.
	- Fixed several bugs in the mxmldoc utility.
	- Added new error callback function to catch a variety
	  of errors and log them to someplace other than stderr.
	- The mxmlElementSetAttr() function now allows for NULL
	  attribute values.
	- The load and save functions now properly handle quoted
	  element and attribute name strings properly, e.g. for
	  !DOCTYPE declarations.


CHANGES IN Mini-XML 1.2

	- Added new "set" methods to set the value of a node.
	- Added new formatted text methods mxmlNewTextf() and
	  mxmlSetTextf() to create/set a text node value using
	  printf-style formats.
	- Added new standard callbacks for use with the mxmlLoad
	  functions.
	- Updated the HTML documentation to include examples of
	  the walk and load function output.
	- Added --with/without-ansi configure option to control
	  the strdup() function check.
	- Added --with/without-snprintf configure option to
	  control the snprintf() and vsnprintf() function
	  checks.


CHANGES IN Mini-XML 1.1.2

	- The mxml(3) man page wasn't updated for the string
	  functions.
	- mxmlSaveString() returned the wrong number of
	  characters.
	- mxml_add_char() updated the buffer pointer in the
	  wrong place.


CHANGES IN Mini-XML 1.1.1

	- The private mxml_add_ch() function did not update the
	  start-of-buffer pointer which could cause a crash when
	  using mxmlSaveString().
	- The private mxml_write_ws() function called putc()
	  instead of using the proper callback which could cause
	  a crash when using mxmlSaveString().
	- Added a mxmlSaveAllocString() convenience function for
	  saving an XML node tree to an allocated string.


CHANGES IN Mini-XML 1.1

	- The mxmlLoadFile() function now uses dynamically
	  allocated string buffers for element names, attribute
	  names, and attribute values.  Previously they were
	  capped at 16383, 255, and 255 bytes, respectively.
	- Added a new mxmlLoadString() function for loading an
	  XML node tree from a string.
	- Added a new mxmlSaveString() function for saving an
	  XML node tree to a string.
	- Add emulation of strdup() if the local platform does
	  not provide the function.


CHANGES IN Mini-XML 1.0

	- The mxmldoc program now handles function arguments,
	  structures, unions, enumerations, classes, and
	  typedefs properly.
	- Documentation provided via mxmldoc and more in-line
	  comments in the code.
	- Added man pages and packaging files.


CHANGES IN Mini-XML 0.93

	- New mxmldoc example program that is also used to
	  create and update code documentation using XML and
	  produce HTML reference pages.
	- Added mxmlAdd() and mxmlRemove() functions to add and
	  remove nodes from a tree.  This provides more
	  flexibility over where the nodes are inserted and
	  allows nodes to be moved within the tree as needed.
	- mxmlLoadFile() now correctly handles comments.
	- mxmlLoadFile() now supports the required "gt", "quot",
	  and "nbsp" character entities.
	- mxmlSaveFile() now uses newlines as whitespace
	  when valid to do so.
	- mxmlFindElement() now also takes attribute name and
	  attribute value string arguments to limit the search
	  to specific elements with attributes and/or values.
	  NULL pointers can be used as "wildcards".
	- Added uninstall target to makefile, and auto-reconfig
	  if Makefile.in or configure.in are changed.
	- mxmlFindElement(), mxmlWalkNext(), and mxmlWalkPrev()
	  now all provide "descend" arguments to control whether
	  they descend into child nodes in the tree.
	- Fixed some whitespace issues in mxmlLoadFile().
	- Fixed Unicode output and whitespace issues in
	  mxmlSaveFile().
	- mxmlSaveFile() now supports a whitespace callback to
	  provide more human-readable XML output under program
	  control.


CHANGES IN Mini-XML 0.92

	- mxmlSaveFile() didn't return a value on success.


CHANGES IN Mini-XML 0.91

	- mxmlWalkNext() would go into an infinite loop.


CHANGES IN Mini-XML 0.9

	- Initial public release.