HTML Tree Changes ================= This file last updated: Mon Apr 18 22:28:18 PDT 2005 ******************************************************************************* 2.4.3 ******************************************************************************* BUG FIXES --------- * I had to modify my_set.h to adhere to g++'s stricter C++ implementation. ******************************************************************************* 2.4.2 ******************************************************************************* BUG FIXES --------- * In 2.3, a bug was introduced in element-closing. D'oh! ******************************************************************************* 2.4 ******************************************************************************* NEW FEATURES ------------ * Some XHTML 2.0 elements have been added to the HTML module. BUG FIXES --------- * The HTML::Tree Perl module wouldn't build against a threading Perl. ******************************************************************************* 2.3.2 ******************************************************************************* BUG FIXES --------- * The
tag mistakenly closed the

element. ******************************************************************************* 2.3.1 ******************************************************************************* BUG FIXES --------- * Made changes so it compiles using g++ 3.1. * Made changes so it compiles under Mac OS X. ******************************************************************************* 2.3 ******************************************************************************* NEW FEATURES ------------ * The mod_perl API now has a "check_value" built-in class similar to "select" but for radio buttons. * The mod_perl API now has a "sub_param" built-in class that deprecates "sub_id". * The mod_perl API now has a "href_param" built-in class that deprecates "href_id". * The mod_perl API now has a "value_param" built-in class that deprecates "value_id". ******************************************************************************* 2.2 ******************************************************************************* NEW FEATURES ------------ * The C++ class hierarchy has been simplified by folding Parent_Node into Content_Node. * For the Perl API, there is now a $node->delete() function. BUG FIXES --------- * The closing of DD/DT elements was slightly wrong. * In the Apache module, the escaping of text now protects HTML entities better. ******************************************************************************* 2.1.4 ******************************************************************************* BUG FIXES --------- * Comment parsing was broken in that it allowed "->" in addition to "-->" to terminate a comment. ******************************************************************************* 2.1.3 ******************************************************************************* BUG FIXES --------- * Since HTML is migrating to XHTML, it was necessary to make attribute names be legal XHTML attribute names. * There was an incompatibility with newer (?) versions of Apache::Filter. ******************************************************************************* 2.1.2 ******************************************************************************* BUG FIXES --------- * The library wasn't (but is now) thread-safe. ******************************************************************************* 2.1.1 ******************************************************************************* BUG FIXES --------- * This releases fixes a lot of compile issues (mostly namespaces) with g++ 3.0. ******************************************************************************* 2.1 ******************************************************************************* * This is a clean-up release to bring HTML Tree into sync with XML Tree. Note that parse_html() changed to html_parse(). ******************************************************************************* 2.0.3 ******************************************************************************* BUG FIXES --------- * Some C headers on some implementations define open/close as macros to remap them to functions that handle files larger than 2 GB. This works fine in C, but can break C++ where classes have open/close member functions. ******************************************************************************* 2.0.2 ******************************************************************************* BUG FIXES --------- * For as_string() and write() with pretty-printing, text nodes removal of leading and trailing whitespace characters was off. ******************************************************************************* 2.0.1 ******************************************************************************* BUG FIXES --------- * In Apache::HTML::ClassParser, must call HTML::Tree->new() with Include_Comments so comment-hidden JavaScript will get passed through to the browser. ******************************************************************************* 2.0 ******************************************************************************* NEW FEATURES ------------ * The C++ API has expanded greatly. HTML_Nodes now have iterators, string conversion, writing to ostreams, comparison; Parent_Nodes now have full STL-container-like functionality. * The Perl API has expanded greatly. An HTML::Tree can be converted to a string, an array, can be searched by name or predicate function, can be created from a string, can be modified. Note: unfortunately, the result of the children() member had to change in an incompatible manner. Specifically, what was: ($node->children())[0] must now be: $node->children()->[0] BUG FIXES --------- * The last run of text in a file wasn't turned into a Text_Node. ******************************************************************************* 1.4 ******************************************************************************* NEW FEATURES ------------ * Made HTML_Node::visitor::operator() be non-const and HTML_Node::visit() take a non-const visitor& thus allowing derived visitor classes to modify member data during traversal. BUG FIXES --------- * Per the HTML specification, attributes names are allowed to contain '.' in addition to '-'. The parser didn't allow '.'. Also, although not legal, '_' is now allowed in attribute names as well. * The top-level GNUmakefile didn't remove .*.d files on "make distclean". ******************************************************************************* 1.3.1 ******************************************************************************* BUG FIXES --------- * The "destructing_" data member of Parent_Node was not initialized. ******************************************************************************* 1.3 ******************************************************************************* The only real difference in this version is that I updated my e-mail address in all the files. ******************************************************************************* 1.2.3 ******************************************************************************* BUG FIXES --------- * When setting an HTML attribute's value to a variable whose value was undef, the attribute was not deleted. ******************************************************************************* 1.2.2 ******************************************************************************* BUG FIXES --------- * Fixed segmentation fault when parsing HTML files that contain tags longer than Tag_Name_Max_Size characters. ******************************************************************************* 1.2.1 ******************************************************************************* BUG FIXES --------- * Fixed a couple of bugs in mod/HTML/Tree/test.pl (see below). ******************************************************************************* 1.2 ******************************************************************************* NEW FEATURES ------------ * Added a built-in function to substitute the HREF attribute as a shorthand. * Added a built-in function to substitute just the numeric ID part of an attribute's value. * I've decided that "sub::" makes more sense that "att::" * Changed the behavior when a CLASS attribute has multiple values for end tags in that only the first value's function is called. BUG FIXES --------- *

elements weren't implicitly terminated by a new
element. * The "prettyhtml" test target didn't have its dependencies correctly in the GNUmakefile due to an error in the "include" directive. ******************************************************************************* 1.1.1 ******************************************************************************* BUG FIXES --------- * "att::" was completely broken because it didn't do the right pattern match. I don't know how this ever worked. ******************************************************************************* 1.0.2 ******************************************************************************* BUG FIXES --------- * Fixed a problem with parsing files that began with , e.g., a document type specification. ******************************************************************************* 1.0.1 ******************************************************************************* BUG FIXES --------- * Fixed a segmentation fault if you parsed the same file twice. ******************************************************************************* 1.0 ******************************************************************************* * Initial release.