2009-02-09 Release 3.60
Ville Skytta (5):
Spelling fixes.
Test multi-value headers.
Documentation improvements.
Do not terminate head parsing on the <object> element (added in HTML 4.0).
Add support for HTML 5 <meta charset> and new HEAD elements.
Damyan Ivanov (1):
Short description of the htextsub example
Mike South (1):
Suppress warning when encode_entities is called with undef [RT#27567]
Zefram (1):
HTML::Parser doesn't compile with perl 5.8.0.
Upstream changes:
2008-11-24 Gisle Aas <gisle@ActiveState.com>
Release 3.59
Restore perl-5.6 compatibility for HTML::HeadParser.
Improved META.yml
2008-11-17 Gisle Aas <gisle@ActiveState.com>
Release 3.58
Suppress "Parsing of undecoded UTF-8 will give garbage" warning
with attr_encoded [RT#29089]
HTML::HeadParser:
- Recognize the Unicode BOM in utf8_mode as well [RT#27522]
- Avoid ending up with '/' keys attribute in Link headers.
2008-11-16 Gisle Aas <gisle@ActiveState.com>
Release 3.57
The <iframe> element content is now parsed in literal mode.
Parsing of <script> and <style> content ends on the first end tag
even when that tag was in a quoted string. That seems to be the
behaviour of all modern browsers.
Implement backquote() attribute as requested by Alex Kapranoff.
Test and documentation tweaks from Alex Kapranoff.
2007-01-12 Gisle Aas
Release 3.56
Cloning of parser state for compatiblity with threads.
Fixed by Bo Lindbergh
Don't require whitespace between declaration tokens.
<http://rt.cpan.org/Ticket/Display.html?id=20864>
2006-07-10 Gisle Aas
Release 3.55
Treat <> at the end of document as text. Used to be
reported as a comment.
Improved Firefox compatiblity for bad HTML:
- Unclosed <script>, <style> are now treated as empty tags.
- Unclosed <textarea>, <xmp> and <plaintext> treat rest as text.
- Unclosed <title> closes at next tag.
Make <!a'b> a comment by itself.
2006-04-28 Gisle Aas
Release 3.54
Yaakov Belch discovered yet another issue with <script> parsing.
Enabling of 'empty_element_tags' got the parser confused
if it found such a tag for elements that are normally parsed
in literal mode. Of these <script src="..."/> is the only
one likely to be found in documents.
<http://rt.cpan.org//Ticket/Display.html?id=18965>
2006-04-27 Gisle Aas
Release 3.53
When ignore_element was enabled it got confused if the
corresponding tags did not nest properly; the end tag
was treated it as if it was a start tag.
Found and fixed by Yaakov Belch
<http://rt.cpan.org/Ticket/Display.html?id=18936>
2006-04-26 Gisle Aas
Release 3.52
Make sure the 'start_document' fires exactly once for
each document parsed. For earlier releases it did not
fire at all for empty documents and could fire multiple
times if parse was called with empty chunks.
Documentation tweaks and typo fixes.
2006-03-22 Gisle Aas
Release 3.51
Named entities outside the Latin-1 range are now only expanded
when properly terminated with ";". This makes HTML::Parser
compatible with Firefox/Konqueror/MSIE when it comes to how these
entities are expanded in attribute values. Firefox does expand
unterminated non-Latin-1 entities in plain text, so here
HTML::Parser only stays compatible with Konqueror/MSIE.
Fixes <http://rt.cpan.org/Ticket/Display.html?id=17962>.
Fixed some documentation typos spotted by william at knowmad.com.
<http://rt.cpan.org/Ticket/Display.html?id=18062>
2006-01-08 Gisle Aas
Release 3.49
Events could sometimes still fire after a handler has signaled eof.
Marked_sections with text ending in square bracket parsed wrong.
<http://rt.cpan.org/Ticket/Display.html?id=16749>
2005-12-02 Gisle Aas
Release 3.48
Enabling empty_element_tags by default for HTML::TokeParser
was a mistake. Reverted that change.
<https://rt.cpan.org/Ticket/Display.html?id=16164>
When processing a document with "marked_sections => 1", the
skipped text missed the first 3 bytes "<![".
<https://rt.cpan.org/Ticket/Display.html?id=16207>
2005-11-22 Gisle Aas
Release 3.47
Added empty_element_tags and xml_pic configuration
options. These make it possible to enable these XML
features without enabling the full XML-mode.
The empty_element_tags is enabled by default for
HTML::TokeParser.
2005-10-24 Gisle Aas
Release 3.46
Don't try to treat an literal as space.
This breaks Unicode parsing.
https://rt.cpan.org/Ticket/Display.html?id=15068
The unbroken_text option is now by default on
for HTML::TokeParser.
HTML::Entities::encode will no encode "'" by default.
Improved report/ignore_tags documentation by
Norbert Kiesel
Test suite now use Test::More, by
Norbert Kiesel
Fix HTML::Entities typo spotted by
Stefan Funke
Faster load time with XSLoader (perl-5.6 or better now required).
Fixed POD markup errors in some of the modules.
2005-01-06 Gisle Aas
Release 3.45
Fix stack memory leak caused by missing PUTBACK. Only
code that used $p->parse(\&cb) form was affected.
Fix provided by Gurusamy Sarathy
2004-12-28 Gisle Aas
Release 3.44
Fix confusion about nested quotes in <script> and <style> text.
2004-12-06 Gisle Aas
Release 3.43
The SvUTF8 flag was not propagated correctly when replacing
unterminated entities.
Fixed test failure because of missing binmode on Windows.
Change HOMEPAGE to author-independent link on search.cpan.org.
Change log:
2004-12-04 Gisle Aas <gisle@ActiveState.com>
Release 3.42
Avoid sv_catpvn_utf8_upgrade() as that macro was not
available in perl-5.8.0.
Patch by Reed Russell <Russell.Reed@acxiom.com>.
Add casts to suppress compilation warnings for char/U8
mismatches.
HTML::HeadParser will always push new header values.
This make sure we never loose old header values.
2004-11-30 Gisle Aas <gisle@ActiveState.com>
Release 3.41
Fix unresolved symbol error with perl-5.005.
2004-11-29 Gisle Aas <gisle@ActiveState.com>
Release 3.40
Make utf8_mode only available on perl-5.8 or better. It produced
garbage with older versions of perl.
Emit warning if entities are decoded and something in the first
chunk looks like hibit UTF-8. Previously this warning was only
triggered for documents with BOM.
2004-11-23 Gisle Aas <gisle@ActiveState.com>
Release 3.39_92
More documentation of the Unicode issues. Moved around HTML::Parser
documentation a bit.
New boolean option; $p->utf8_mode to allow parsing of raw UTF-8.
Documented that HTML::Entities::decode_entities() can take multiple
arguments.
Unterminated entities are now decoded in text (compatibility
with MSIE misfeature).
Document HTML::Entities::_decode_entities(); this variation of the
decode_entities() function has been available for a long time, but
have not been documented until now.
HTML::Entities::_decode_entities() can now be told to try to
expand unterminated entities.
Simplified Makefile.PL
2004-11-23 Gisle Aas <gisle@ActiveState.com>
Release 3.39_91
The HTML::HeadParser will skip Unicode BOM. Previously it
would consider the <head> section done when it saw the BOM.
The parser will look for Unicode BOM and give appropriate
warnings if the form found indicate trouble.
If no matching end tag is found for <script>, <style>, <xmp>
<title>, <textarea> then generate one where the next tag
starts.
For <script> and <style> recognize quoted strings and don't
consider end element if the corresponding end tag is found
inside such a string.
2004-11-17 Gisle Aas <gisle@ActiveState.com>
Release 3.39_90
The <title> element is now parsed in literal mode, which
means that other tags are not recognized until </title> has
been seen.
Unicode support for perl-5.8 and better.
Decoding Unicode entities always enabled; no longer a compile
time option.
Propagation of UTF8 state on strings.
Patch contributed by John Gardiner Myers <jgmyers@proofpoint.com>.
Calculate offsets and lengths in chars for Unicode strings.
Fixed link typo in the HTML::TokeParser documentation.
2004-11-11 Gisle Aas <gisle@ActiveState.com>
Release 3.38
New boolean option; $p->closing_plaintext
Contributed by Alex Kapranoff <alex@kapranoff.ru>
2004-11-10 Gisle Aas <gisle@ActiveState.com>
Release 3.37
Improved handling of HTML encoded surrogate pairs and illegally
endoded Unicode; <http://rt.cpan.org/Ticket/Display.html?id=7785>.
Patch by John Gardiner Myers <jgmyers@proofpoint.com>.
Avoid generating bad UTF8 strings when decoding entities
representing chars beyond #255 in 8-bit strings. Such bad
UTF8 sometimes made perl-5.8.5 and older segfault.
Undocument v2 style subclassing in synopsis section.
Internal cleanup:
Make 'gcc -Wall' happier.
Avoid modification of PVs during parsing of attrspec.
Another patch by John Gardiner Myers.
2004-04-01 Gisle Aas <gisle@ActiveState.com>
Release 3.36
Improved MSIE/Mozilla compatibility. If the same attribute
name repeats for a start tag, use the first value instead
of the last. Patch by Nick Duffek <html-parser@duffek.com>.
<https://rt.cpan.org/Ticket/Display.html?id=5472>
changes since 3.31:
Release 3.34
Fix segfault that happened when the parse callback caused
the stack to get reallocated. The original bug report was
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=217616>
Release 3.33
Perl 5.005 or better is now required. For some reason we get
a test failure with perl-5.004 and I don't really feel like
debugging that perl any more. Details about this failure can
be found at <http://rt.cpan.org/Ticket/Display.html?id=4065>.
New HTML::TokeParser method called 'get_phrase'. It returns
all current text while ignoring any phrase-level markup.
The HTML::TokeParser method 'get_text' now expands skipped
non-phrase-level tags as a single space.
Release 3.32
If the document parsed ended with some kind of unterminated markup,
then the parser state was not reset properly and this piece of markup
would show up in the beginning of the next document parsed.
<http://rt.cpan.org/Ticket/Display.html?id=3954>
The get_text and get_trimmed_text methods of HTML::TokeParser can
now take multiple end tags as argument. Patch by <siegmann@tinbergen.nl>
at <http://rt.cpan.org/Ticket/Display.html?id=3166>.
Various documentation tweaks.
Included another example program: hdump
Better compatibility with Mozilla/MSIE behaviour.
==== Changes since 3.27 ====
2003-08-19 Gisle Aas <gisle@ActiveState.com>
Release 3.31
The -DDEBUGGING fix in 3.30 was not really there :-(
2003-08-17 Gisle Aas <gisle@ActiveState.com>
Release 3.30
The previous release failed to compile on a -DDEBUGGING perl
like the one provided by Redhat 9.
Got rid of references to perl-5.7.
Further fixes to avoid warnings from Visual C.
Patch by Steve Hay <steve.hay@uk.radan.com>.
2003-08-14 Gisle Aas <gisle@ActiveState.com>
Release 3.29
Setting xml_mode now implies strict_names also for end tags.
Avoid warning from Visual C. Patch by <gsar@activestate.com>.
64-bit fix from Doug Larrick <doug@ties.org>
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195500
Try to parse similar to Mozilla/MSIE in certain edge cases.
All these are outside of the official definition of HTML but
HTML spam often tries to take advantage of these.
- New configuration attribute 'strict_end'. Unless enabled
we will allow end tags to contain extra words or stuff
that look like attributes before the '>'. This means that
tags like these:
</foo foo="<ignored>">
</foo ignored>
</foo ">" ignored>
are now all parsed as a 'foo' end tag instead of text.
Even if the extra stuff looks like attributes they will not
be reported if requested via the 'attr' or 'tokens' argspecs
for the 'end' handler.
- Parse '</:comment>' and '</ comment>' as comments unless
strict_comment is enabled. Previous versions of the parser
would report these as text. If these comments contain
quoted words prefixed by space or '=' these words can
contain '>' without terminating the comment.
- Parse '<! "<>" foo>' as comment containing ' "<>" foo'.
Previous versions of the parser would terminate the comment
at the first '>' and report the rest as text.
- Legacy comment mode: Parse with comments terminated with a
lone '>' if no '-->' is found before eof.
- Incomplete tag at eof is reported as a 'comment' instead
of 'text' unless strict_comment is enabled.
2003-04-16 Gisle Aas <gisle@ActiveState.com>
Release 3.28
When 'strict_comment' is off (which it is by default)
treat anything that matches <!...> a comment.
Should now be more efficient on threaded perls.
Avoid core dump in some cases where the callback croaks.
The perl_call_method and perl_call_sv needs G_EVAL flag
to be safe.
New parser attributes; 'attr_encoded' and 'case_sensitive'.
Contributed by Guy Albertelli II <guy@albertelli.com>.
HTML::Entities
- don't encode \r by default as suggested by Sean M. Burke.
HTML::HeadParser
- ignore empty http-equiv
- allow multiple <link> elements. Patch by
Timur I. Bakeyev <timur@gnu.org>
Avoid warnings from bleadperl on the uentities test.
2001-05-11 Gisle Aas <gisle@ActiveState.com>
Release 3.25
Minor tweaks for build failures on perl5.004_04, perl-5.6.0,
and for macro clash under Windows.
Improved parsing of <plaintext>... :-)