*** v4.5.4 - Corrected memory leak if text contained HTML-escaped characters (thanks @hakker_de!).

*** v4.5.3 - Corrected write on NULL for not-XML files (thanks @bladchan!).
	- Added NULL check when reading BOM.

*** v4.5.2 - Corrected buffer overrun on unhtml() (thanks @gvollant!).
	- Changed true/false to uppercase (MS Visual Studio).
	- Added some first) specifics for MS Visual Studio complaints.

*** v4.5.1 - Added missing free() in XMLSearch_free() (thanks @yogibe4r!).

*** v4.5.0 - HTML decoding on node text.
	- Corrected uninitialized BOM size in XMLDOC_init().

*** v4.4.0 - Added UTF-8 support (many thanks to Todd Osborne!).

*** v4.3.4 - Test for i_root validity in macro XMLDoc_root.

*** v4.3.3 - Added Sourceforge#12 by Alexander Goomenyuk (expose data source context to user).
	- Added search unitest.

*** v4.3.2 - Fixed GitHub#11 by Dami�n M. Gonz�lez (missing free() on XMLNode_set_text()).
	- Doxygen documentation update.
	- Correction of CHECK_NODE macro that returned false on valid nodes!

*** v4.3.1 - Correction on XMLNode_get_index().
	- Doxygen documentation.

*** v4.3.0 - Added Github#9: "Support for XMLNode_add_sibling()".
	- Documentation update.
	- Rudimentary unit testing.

*** v4.2.7 - Fixed #20 by Richard Minner (SXMLC_VERSION not updated), #21, #22 by George Makarov (sx_f* consistency).

*** v4.2.6 - Fixed #17, #18, #19 by Andreas Neustifter (infinite loop and compilation messages).

*** v4.2.5 - Some compilation messages corrections by cosminginerica.

*** v4.2.4 - Correction on reading non-quoted attribute values, now returns proper TAG_SELF to SAX callbacks.
	- Added XMLNode_get_attribute_count().

*** v4.2.3 - Some corrections by Cliff Baumann.

*** v4.2.2 - Corrected uninitialized alloc (thanks Harry Sintonen) and memory leak (thanks Cliff Baumann).

*** v4.2.1 - Better handling of XML escapable characters.
	- str2html() can allocate output buffer is NULL is given.

*** v4.2.0 - Many bug corrections (memory-related, error checks, consistency. Many many thanks to Harry Sintonen!!!)

*** v4.1.2 - Fixed problem in char casting during line read(Thanks to Nicholai Benalal!).

*** v4.1.1 - Fixed single attribute search init from XPath(Thanks to Nicholai Benalal!).

*** v4.1.0 - Thanks to Olgierd Stankiewicz!
	- Added support for sparse text in nodes.
	- Added attribute separator for XML print.
	- Corrected missing +1 in attribute value char allocation.
	- Changed constant name 'MAX_PATH' to 'SXMLC_MAX_PATH' to prevent potential conflicts with OS includes.

*** v4.0.10 - Corrected backslash were not allowed in values (Thanks to J�rg Singendonk (singendonk@users.sf.net)!).
	- Corrected root node was not set when it is a "self-contained" node.

*** v4.0.9 - Corrected SAX callbacks return value not taken into account (Thanks to Logan (nslogan@users.sf.net)!).

*** v4.0.8 - Corrected potential bad free during initialization of search from XPath (Cnacu6o to Sergey (sekaich@users.sf.net)!).
	- Set search attribute value to NULL when no '=' is given.
	- Removed #include "sxmlutils.h" not needed anymore.

*** v4.0.7 - Corrected possible segfault during initialization of search from XPath (Cnacu6o to Sergey (sekaich@users.sf.net)!).

*** v4.0.6 - Merged sxmlutils.c into sxmlc.c.
	- Corrected test when re-opening the file as text could be used before being NULL-tested.

*** v4.0.5 - Corrected bug #6: XMLNode_equal was not testing attribute value (thanks to Carmel (@lablabla))
	- Finished code reformatting

*** v4.0.4 - Corrected #end instead of #endif

*** v4.0.3 - Updated license to BSD
	- Corrected bug #4: mis-initialization in XML search struct (thanks to Carmel (@lablabla))
	- Corrected bug #5: infinite loop in sx_strdup with DBG_MEM defined (thanks to Carmel (@lablabla))
	- Reformatted code (unfinished)

*** v4.0.2 - Updated license to LGPL v2.1 (mistakenly LGPL v3)

*** v4.0.1 - Corrections/Suggestions given by Pete (@bothap)
	- Corrected coredump when memory not initialised after malloc when init_value happens to contain XML_INIT_DONE.
	- Corrected memory leak in DOM parser when 'dom->current->text' alrady contained text.
	- Renamed 'utils.*' to 'sxmlutils.*'.
	- Removed automatic freeing of 'XMLNode' and 'XMLDoc' (documented in 'datastruct.html').
	- Enclosed BOM zeroing into '#ifdef SXMLC_UNICODE' in 'XMLNode_init'.
	- Added functions 'XMLNode_get_attribute*' to retrieve an attribute value based on its name.

*** v4.0.0
	- Unicode handling through SXMLC_UNICODE define (Use -DSXMLC_UNICODE when compiling).
	- Use 'sx_*' functions to manipulate strings, and C2SX() macro around constant strings and characters to provide portable code for Unicode/non-Unicode compilation.
	- Added 'NULC' and 'CEOF' constants as nul and EOF characters, according to SXMLC_UNICODE define.
	- Removed parameter 'protect' in function 'strip_spaces' (forced to backslash).
	
*** v3.5.1
	- Minor corrections in comments.
	- 'XMLDoc_parse_file' is now a macro.
	- 'XMLNode_print' takes less parameters (no more 'depth') and can be used in thread (no more static variables). Sub-functions were added.
	- New function 'XMLNode_print_header' which print only the "header" part (i.e. no text or children).
	- Correction in HowTo

*** v3.5.0
	- Corrected memory leak in 'XMLDoc_free' when children nodes pointers were not freed
	- Corrected CDATA tag end (!)
	- Added macros to ease memory debugging (define DBG_MEM constant)
	- Added parameters to 'XMLNode_remove_child' and 'XMLDoc_remove_node' to allow for freeing child/node pointer itself
	- Function 'XML_parse_1string' returns 'TAG_ERROR' on error, instead of 'TAG_NONE'
	- Check is made on tag name consistency in "DOM node end callback"
	- Function 'DOMXMLDoc_doc_end' is used as "DOM node end callback" (!)
	- New functions 'XMLNode_get_children_count', 'XMLNode_dup' (allocate and copy)
	- Added XML_DEFAULT_QUOTE to tell which quote " or ' should be used when printing a node
	- New macro 'isquote'

*** v3.4.0
	- Modifications to get splint talk just a little bit less! ;) (functions now return values, etc.)
	- #defines are replaced by enums.
	- User-defined tags can be released and accessed.
	- Added an 'examples' folder.
	- Added AUTHOR and CHANGELOG files.
	- Changed method 'XMLNode_set_comment' into more generic 'XMLNode_set_type'.

*** v3.3.1
	- Added 'XMLDoc_remove_node' that didn't exist!
	- Added an option to 'XML*_print' to prevent printing "pretty-print" separators.
	- 'XMLDoc_print' no longer prints a new line as the first line (a.k.a "UGLY HACK").

*** v3.3.0
	- Corrected problem on child nodes association.
	- Added parser for buffer, not only files (changed prototype of "read_line_alloc").
	- Added SAX callbacks for document start and end.
	- Added an error handler for SAX.
	- Changed the parameter on SAX callbacks to get access to line number and data source name.
	- Tests are made on proper initialization of XMLDoc and XMLNode structures.
	- Added generation of XPath description for a node.
	- New file "htmlstrip.c" as an example on how to use sxmlc to parse an HTML document.

*** v3.2.0
	- Include DOCTYPE tag.
	- Unified DOM parse to use SAX callbacks.
	- Added an "all-in-one" callback for SAX parser.
	- Added support of user-defined tags.
	- Added 'extern "C" {' to .h files.
	- Added "const" specifier in function arguments when possible.
	- Changed values from 'TAG_*' constants.
	- Corrected XMLNode_copy to copy the 'active' attribute as well.
	- Use standard function "strdup" instead of own "strcpy_alloc".
	- Added a check for uninitialized XMLDoc.
	- Made the 'XML_parse_1string' function available to call (non static) .
	- Node text, attributes name and value are unescaped.

*** v3.1.0
	- Handling of XPath-like queries.
	- Added new utility functions (major one being the split).
	- Regexp function can be overloaded.
	- Attribute value handles test for difference, not only equality.
